Web Service throws 401 Error when consumed

  • Thread starter Thread starter Sanjay
  • Start date Start date
S

Sanjay

I have written a web service to return information from the database. This
works and the data is returned in XML format from the database and displayed
on the web page as well when this web service called getsampledata is
invoked. Now I create a web page and created a webservice using the web
reference technique in the VS .NET to consume this web service. The web
page (application), web server, web service and database are on the same
box. Here is where my problems start. I keep getting this error message
reproduced here.

System.Net.WebException: The request failed with HTTP status 401: Access
Denied. at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClient
Message message, WebResponse response, Stream responseStream, Boolean
asyncCall) at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters) at
WebPageWebServiceTest.HPSD.Service1.GetSampleData() in
C:\Inetpub\wwwroot\WebPageWebServiceTest\Web
References\HPSD\Reference.cs:line 40 at
WebPageWebServiceTest.WebForm1.Button1_Click(Object sender, EventArgs e) in
c:\inetpub\wwwroot\webpagewebservicetest\webform1.aspx.cs:line 69

Name of the web page trying to consume the webservice =
WebPageWebServiceTest
Name of the webservice HPSD.Service1.GetSampleData().


I have played around with the web config file and have the following working
web.conifg parameters
<authentication mode="None" />

<identity impersonate="true" />

Same parameters on both the web.config files ie on the web service and web
page(application). The database has aspnet configured as a user. The
following line is the connection string details on the webservice

sqlConnectionString="Provider=SQLOLEDB.1;integratedsecurity=SSPI;Persist
Security Info=False;Initial Catalog=XXX_DEV;Data Source=XXXX;

I just am not able to get past the error noted above.

I am wondering if anyone else has run into this problem. Any pointers/tips
much appreciated.

Thanks

Sanjay
 
Thank you Chris
That took care of that problem. Really apprecate your help.
Now to figure out how to get the xml data out of the dataset and bind to the
datagrid.
Thanks again.
Sanjay

Chris Jackson said:
Do you have anonymous access turned on for your web application? Here is a
knowledge base article that addresses this situation and may help:

http://support.microsoft.com/default.aspx?scid=kb;en-us;811318


--
Chris Jackson
Software Engineer
Microsoft MVP - Windows Shell/UI
Windows XP Associate Expert
--
More people read the newsgroups than read my email.
Reply to the newsgroup for a faster response.
(Control-G using Outlook Express)
--

Sanjay said:
I have written a web service to return information from the database. This
works and the data is returned in XML format from the database and displayed
on the web page as well when this web service called getsampledata is
invoked. Now I create a web page and created a webservice using the web
reference technique in the VS .NET to consume this web service. The web
page (application), web server, web service and database are on the same
box. Here is where my problems start. I keep getting this error message
reproduced here.

System.Net.WebException: The request failed with HTTP status 401: Access
Denied. at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClient
Message message, WebResponse response, Stream responseStream, Boolean
asyncCall) at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters) at
WebPageWebServiceTest.HPSD.Service1.GetSampleData() in
C:\Inetpub\wwwroot\WebPageWebServiceTest\Web
References\HPSD\Reference.cs:line 40 at
WebPageWebServiceTest.WebForm1.Button1_Click(Object sender, EventArgs e) in
c:\inetpub\wwwroot\webpagewebservicetest\webform1.aspx.cs:line 69

Name of the web page trying to consume the webservice =
WebPageWebServiceTest
Name of the webservice HPSD.Service1.GetSampleData().


I have played around with the web config file and have the following working
web.conifg parameters
<authentication mode="None" />

<identity impersonate="true" />

Same parameters on both the web.config files ie on the web service and web
page(application). The database has aspnet configured as a user. The
following line is the connection string details on the webservice

sqlConnectionString="Provider=SQLOLEDB.1;integratedsecurity=SSPI;Persist
Security Info=False;Initial Catalog=XXX_DEV;Data Source=XXXX;

I just am not able to get past the error noted above.

I am wondering if anyone else has run into this problem. Any pointers/tips
much appreciated.

Thanks

Sanjay
 
You can bind to any class that supports the IEnumerable interface:

dataGrid.DataSource = dataSet;
dataGrid.DataBind();

--
Chris Jackson
Software Engineer
Microsoft MVP - Windows Shell/UI
Windows XP Associate Expert
--
More people read the newsgroups than read my email.
Reply to the newsgroup for a faster response.
(Control-G using Outlook Express)
--

Sanjay said:
Thank you Chris
That took care of that problem. Really apprecate your help.
Now to figure out how to get the xml data out of the dataset and bind to the
datagrid.
Thanks again.
Sanjay

Chris Jackson said:
Do you have anonymous access turned on for your web application? Here is a
knowledge base article that addresses this situation and may help:

http://support.microsoft.com/default.aspx?scid=kb;en-us;811318


--
Chris Jackson
Software Engineer
Microsoft MVP - Windows Shell/UI
Windows XP Associate Expert
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClient
Message message, WebResponse response, Stream responseStream, Boolean
asyncCall) at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters) at
WebPageWebServiceTest.HPSD.Service1.GetSampleData() in
C:\Inetpub\wwwroot\WebPageWebServiceTest\Web
References\HPSD\Reference.cs:line 40 at
WebPageWebServiceTest.WebForm1.Button1_Click(Object sender, EventArgs
e)
in
c:\inetpub\wwwroot\webpagewebservicetest\webform1.aspx.cs:line 69

Name of the web page trying to consume the webservice =
WebPageWebServiceTest
Name of the webservice HPSD.Service1.GetSampleData().


I have played around with the web config file and have the following working
web.conifg parameters
<authentication mode="None" />

<identity impersonate="true" />

Same parameters on both the web.config files ie on the web service
and
web
page(application). The database has aspnet configured as a user. The
following line is the connection string details on the webservice

sqlConnectionString="Provider=SQLOLEDB.1;integratedsecurity=SSPI;Persist
Security Info=False;Initial Catalog=XXX_DEV;Data Source=XXXX;

I just am not able to get past the error noted above.

I am wondering if anyone else has run into this problem. Any pointers/tips
much appreciated.

Thanks

Sanjay
 
Actually Chris I knew that and the web service is working now like a charm.
But thanks for the reply anyway.
Sanjay

PS I have a new question posted on this newsgroup which might 'ahem'
require your expertise/attention.


Chris Jackson said:
You can bind to any class that supports the IEnumerable interface:

dataGrid.DataSource = dataSet;
dataGrid.DataBind();

--
Chris Jackson
Software Engineer
Microsoft MVP - Windows Shell/UI
Windows XP Associate Expert
--
More people read the newsgroups than read my email.
Reply to the newsgroup for a faster response.
(Control-G using Outlook Express)
--

Sanjay said:
Thank you Chris
That took care of that problem. Really apprecate your help.
Now to figure out how to get the xml data out of the dataset and bind to the
datagrid.
Thanks again.
Sanjay
is
a database.
This the
web The
web
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClient
Message message, WebResponse response, Stream responseStream, Boolean
asyncCall) at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters) at
WebPageWebServiceTest.HPSD.Service1.GetSampleData() in
C:\Inetpub\wwwroot\WebPageWebServiceTest\Web
References\HPSD\Reference.cs:line 40 at
WebPageWebServiceTest.WebForm1.Button1_Click(Object sender,
EventArgs
 
Back
Top