Setting up webservices

Vote:
 

Hello,

Been looking at the following link to try and setup webservices (in order to enable a cache refresh across servers in a load balanced environment)

http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-4/EPiServer-462/Web-Services/

However I am proper stuck when trying to access the webservice. I get the windows login prompt fine and my custom user credentials are accepted. Then I get an episerver form login which my custom user is unable to log in on. Always returns the blank form. I can use my own domain login here and it returns the webservice fine.

I've done the necessary with basic authentication in web.config etc etc. Pinging through the remote web sites setup returns:

The requested web service was found but it not gives a correct response (check the user credentials is correct, that the WebService folder in the IIS not accepts anonymous access for the requested site and the remote site has the BasicAuthentication http module installed in its web.config), see the log file for the full error message.

I am pretty much stuck with this one and have been fighting it for a few evenings now. Any ideas would be much appreciated?

Ben

 

#39498
May 18, 2010 16:49
Vote:
 

If your EPiServer form returns to a blank form without any error messages, it means that your user is authenticated. (Otherwise, you would have gotten a login failed error)

Your errormessage says "see the log file for the full error message". Does your log file contain more information?

Does your user belong to a group (eg. webadmin, webedit)? Does this group exist in EPiServer? And if so, did you list it in the <location path="WebServices"> section in your config file?


#39507
May 19, 2010 8:39
Vote:
 

Ben, when settings this up on IIS6 I had to change settings for authentication in the IIS as well, this was about two years ago, so I don't remember what I did though. :(

#39508
May 19, 2010 9:26
Vote:
 

That's right, you need to enable asmx in IIS.

On 2003 server:
- right click your website, select properties
- go to the home directory tab
- click configuration
- click add under application extensions
- Enter this information:
   - Exceutable: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
   - Extension: asmx
   - Verbs: Limit to GET,HEAD,POST,DEBUG
   - Remove check for "Verify that file exists"

#39511
Edited, May 19, 2010 9:52
Vote:
 

(Same in Win XP actually)

#39512
May 19, 2010 9:53
Vote:
 

Hi Lars,

Thanks for your response. In reply:

I added the user to the <location="WebServices"> section. The user has a role created in episerver and is a member of the Users group on the servers. I've checked the IIS settings for asmx and they are all set accorindingly.

I have just discovered that if I have a tab open to the admin UI (logged on as my normal domain user) tehn try the webservices from a second tab entering my custom log on details actually works and brings up the webservices.

This is the error from the episerver log file when I try a ping request from a remote site setup:

2010-05-17 22:52:28,309 ERROR [19] EPiServer.UI.Admin.RemoteSite.PingSite - Can't ping site, because,
EPiServer.Core.EPiServerException: An error occured while talking to "client2(http://clientserver2/WebServices/DataFactoryService.asmx)": The request failed with the error message:
--
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="%2fUtil%2flogin.aspx%3fReturnUrl%3d%252fWebServices%252fDataFactoryService.asmx">here</a>.</h2>
</body></html>

--. ---> System.Net.WebException: The request failed with the error message:
--
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="%2fUtil%2flogin.aspx%3fReturnUrl%3d%252fWebServices%252fDataFactoryService.asmx">here</a>.</h2>
</body></html>

--.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at EPiServer.WebServices.DataFactoryClient.InternalInvoke(String methodName, Object[] parameters)
   --- End of inner exception stack trace ---
   at EPiServer.WebServices.DataFactoryClient.ReportError(Exception e)
   at EPiServer.WebServices.DataFactoryClient.InternalInvoke(String methodName, Object[] parameters)
   at EPiServer.WebServices.DataFactoryClient.Ping()
   at EPiServer.DataAbstraction.RemoteSite.Ping(String remoteSiteName)
   at EPiServer.UI.Admin.RemoteSite.PingSite(Object sender, CommandEventArgs e)

Cheers

Ben

#39515
May 19, 2010 11:13
Vote:
 

Just to make sure: Since you are creating a custom cache refresh, your requirements are suitable to standard EPiServer functionality? If you are looking for e.g. cache refresh when an editor publishes a page, you should have a look at this post instead of creating your own:

http://labs.episerver.com/en/Blogs/Allan/Dates/112230/11/LoadBalancing-in-6-steps/


Just realized that the page you are reffering to are for EPiServer 4, there are a newer version for EPiServer 5 here:
http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-5/EPiServer-CMS-5-R2/Web-Services/

#39536
May 19, 2010 18:22
Vote:
 

You're having some authentication problems... You are being redirected to the login page.

#39539
May 19, 2010 21:22
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.