Re: HTTP endpoint WSDL fails to be created; wsdl does not exist (S
- From: Dan Sullivan danATpluralsight.com
- Date: Thu, 6 Jul 2006 17:10:05 +0000 (UTC)
IIS is not involved with nor is it needed for web services set up in SQL Server 2005. SQL Server works directly with http.sys to set up the endpoint. In general you probably wouldn't have IIS running on the server that was running SQL Server, but YMMV.
If IIS is running on the same system as SQL server you might start by shutting down IIS, you may be having a port collision on port 80.
Here is a simple web service endpoint
CREATE ENDPOINT Test5
STATE = STARTED
AS HTTP
(
path = '/test5',
PORTS = (CLEAR),
CLEAR_PORT = 8080,
SITE = '*',
AUTHENTICATION = (INTEGRATED)
)
FOR SOAP
(
WEBMETHOD 'urn:autos'.'GetColors'
(
NAME = 'SQLCourse.dbo.colorsCount', SCHEMA=DEFAULT),
WSDL=DEFAULT,
SCHEMA=STANDARD,
BATCHES=ENABLED,
DATABASE='SQLCourse',
NAMESPACE='urn:other'
)
browsing
http://localhost:8080/Test5?WSDL
from the machine running SQL Server returns the wsdl for the service and is what, for example, Visual Studio add web reference would use. This WSDL file doesn't exist anywhere on the machine, it is created on the fly in response the ?WSDL query string.
This example puts the web services on CLEAR_PORT=8080 so it doesn't collide with IIS on my XP dev system. On Windows Server SQL Server and IIS can share port 80, but not on XP.
When you do
select name, state_desc from sys.http_endpoints
is the state_desc "started"?
The fact that the endpoint exists is not enough, it must be started. You should be able to see you endpoint in the Surface Area Configuration Manager Features and what its state is and change it. This tool is under start->all programs->Microsoft Sql Server->config, or something like that.
Dan
Also, the no virtual directory appears to have been set up in IIS by
the XML Endpoint setup script; consequently I'm confused by your
suggestion that IE could access it. One article I read stated that
this was normal for an XML Endpoint.
"Dan Sullivan" wrote:
What do you mean that the wsdl has not been created? The wsdl is only
created on the fly when you use the query string ?WSDL.
Are you able to access the site? You should be able to use IE to
access the wsdl by browsing something like:
http://MyMachine/Test5?WSDL
and see the WSDL for your site.
Have you tried using the Surface Area configuration utility to see if
the endpoint is actually running? Or you can try
select * from sys.endpoints
The started_desc will tell you if your endpoint is actually running.
Dan
I followed the instructions for creating an HTTP XML endpoint, and
try to call it from a client, the wsdl for the service has not been
created and can't be addressed. Some step must be missing.
The endpoint shows up in Database objects as created, but the wsdl
has not been created. I had my work checked by others and they
cannot find anything wrong with my setup.
What am I missing?
.
- Prev by Date: SQL Server Performance
- Next by Date: Re: SQL Server Performance
- Previous by thread: SQL Server Performance
- Next by thread: Cannot give permissions to a Database
- Index(es):
Relevant Pages
|