Difference between revisions of "Publishing Troubleshooting"
(→Validate IIS Config) |
|||
Line 173: | Line 173: | ||
If everything is configured correctly you will see some sample code about using the service, otherwise a detailed error message will be displayed. | If everything is configured correctly you will see some sample code about using the service, otherwise a detailed error message will be displayed. | ||
+ | |||
+ | If the returns without error, then try with the exact URL the user would enter, for example: | ||
+ | |||
+ | https://www.someserver.com/xlcubedweb/webservices/RepositoryServer.svc | ||
+ | |||
+ | |||
+ | A full error message should be displayed giving details of the configuration that needs changing. Here a some example errors and the solution to that: | ||
+ | |||
+ | |||
+ | The HttpGetEnabled property of ServiceMetadataBehavior is set to true and the HttpGetUrl property is a relative address, but there is no http base address. Either supply an http base address or set HttpGetUrl to an absolute address. | ||
+ | |||
+ | Locate the <serviiceBehaviors> section and update it to the following: | ||
+ | |||
+ | <serviceBehaviors> | ||
+ | <behavior name="XLCubedWeb.WebServices.RepositoryServerBehavior"> | ||
+ | <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> | ||
+ | <serviceDebug includeExceptionDetailInFaults="false" /> | ||
+ | </behavior> | ||
+ | <behavior name="XLCubedWeb.WebServices.SmallMultipleChartServerBehavior"> | ||
+ | <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> | ||
+ | <serviceDebug includeExceptionDetailInFaults="false" /> | ||
+ | </behavior> | ||
+ | <behavior name="XLCubedWeb.WebServices.MapServerBehavior"> | ||
+ | <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> | ||
+ | <serviceDebug includeExceptionDetailInFaults="false" /> | ||
+ | </behavior> | ||
+ | <behavior name="XLCubedWeb.WebServices.PrintRendererServerBehavior"> | ||
+ | <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> | ||
+ | <serviceDebug includeExceptionDetailInFaults="true" /> | ||
+ | </behavior> | ||
+ | <behavior name="XLCubedWeb.WebServices.SchedulingServerBehavior"> | ||
+ | <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> | ||
+ | <serviceDebug includeExceptionDetailInFaults="false" /> | ||
+ | </behavior> | ||
+ | </serviceBehaviors> | ||
== Permissions == | == Permissions == |
Revision as of 10:38, 8 May 2012
Contents
[hide]Connection failure
When you click "Connect" in the publishing dialog XLCubed will try to contact your web server.
If you can't connect to the web server, you can try the following
Client configuration
If you use a proxy server to access the internet this can prevent XLCubed connecting correctly
To allow the connection turn on the option to bypass the proxy for local addresses.
Note that you only need to do this is you use a proxy, otherwise there is no need to make this change.
If this fails an administrator can check the following to try to resolve the problem.
Windows Authentication
IIS Settings
Depending on your IIS version, take the following steps:
IIS 5/6
Right click the XLCubedWeb directory and select "Properties" Select the "Directory Security" tab Ensure that "Integrated Windows authentication" is checked and all others are not.
IIS 7/7.5
Select the XLCubedWeb directory and open the "Authentication" section.
Ensure "ASP.NET Impersonation" and "Windows Authentication" are enabled, and others are disabled.
If you do not have these options you must add them from Control Panel -> Programs -> Turn Windows features on or off
Web.config
You will need to change the web.config file to include entries for all bindings. These entries are dependent on the authentication mode (Basic, Windows or Anonymous) and whether or not you are using HTTPS.
Please note that when using HTTPS the security mode should be equal to Transport.
Authentication | Using HTTPS? | web.config – on all bindings |
---|---|---|
Windows | Yes | <security mode="Transport"> <transport clientCredentialType="Windows"/> </security> |
Windows | No | <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows"/> </security> |
Basic Authentication
IIS Settings
Depending on your IIS version, take the following steps:
IIS 5/6
Right click the XLCubedWeb directory and select "Properties" Select the "Directory Security" tab Ensure that "Basic authentication" is checked and all others are not.
IIS 7/7.5
Select the XLCubedWeb directory and open the "Authentication" section.
Ensure "ASP.NET Impersonation" and "Basic Authentication" are enabled, and others are disabled.
Web.config
You will need to change the web.config file to include entries for all bindings. These entries are dependent on the authentication mode (Basic, Windows or Anonymous) and whether or not you are using HTTPS.
Please note that when using HTTPS the security mode should be equal to Transport.
Authentication | Using HTTPS? | web.config – on all bindings |
---|---|---|
Basic | Yes | <security mode="Transport"> <transport clientCredentialType="Basic"/> </security> |
Basic | No | <security mode="TransportCredentialOnly"> <transport clientCredentialType="Basic"/> </security> |
Anonymous Authentication
IIS Settings
Depending on your IIS version, take the following steps:
IIS 5/6
Right click the XLCubedWeb directory and select "Properties" Select the "Directory Security" tab Ensure that "Enable anonymous access" is checked and all others are not.
IIS 7/7.5
Select the XLCubedWeb directory and open the "Authentication" section.
Ensure "ASP.NET Impersonation" and "Anonymous Authentication" are enabled, and others are disabled.
If you do not have these options you must add them from Control Panel -> Programs -> Turn Windows features on or off
Web.config
You will need to change the web.config file to include entries for all bindings. These entries are dependent on the authentication mode (Basic, Windows or Anonymous) and whether or not you are using HTTPS.
Please note that when using HTTPS the security mode should be equal to Transport.
Authentication | Using HTTPS? | web.config – on all bindings |
---|---|---|
Anonymous | Yes | <security mode="Transport"> <transport clientCredentialType="None"/> </security> |
Anonymous | No | <security mode="TransportCredentialOnly"> <transport clientCredentialType="None"/> </security> |
Publishing failure
If you can connect to the web server, but can not publish a file, you can try the following
Validate IIS Config
Navigating to the repository web service on the server will give a detailed error message if there is a problem with the configuration.
For example, navigate to:
http://localhost/xlcubedweb/webservices/RepositoryServer.svc
If everything is configured correctly you will see some sample code about using the service, otherwise a detailed error message will be displayed.
If the returns without error, then try with the exact URL the user would enter, for example:
https://www.someserver.com/xlcubedweb/webservices/RepositoryServer.svc
A full error message should be displayed giving details of the configuration that needs changing. Here a some example errors and the solution to that:
The HttpGetEnabled property of ServiceMetadataBehavior is set to true and the HttpGetUrl property is a relative address, but there is no http base address. Either supply an http base address or set HttpGetUrl to an absolute address.
Locate the <serviiceBehaviors> section and update it to the following:
<serviceBehaviors> <behavior name="XLCubedWeb.WebServices.RepositoryServerBehavior"> <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> <behavior name="XLCubedWeb.WebServices.SmallMultipleChartServerBehavior"> <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> <behavior name="XLCubedWeb.WebServices.MapServerBehavior"> <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> <behavior name="XLCubedWeb.WebServices.PrintRendererServerBehavior"> <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> <behavior name="XLCubedWeb.WebServices.SchedulingServerBehavior"> <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors>
Permissions
Users need write permission to the repository directory in order to be able to publish files.
If this permission is missing often users can connect to the web server, but don't see a "My Reports" folder, and get an error when attempting to publish a file.
To check if this is the problem you can grant Read and Write Access to the Repository directory in the XLCubedWeb site to everyone and retry publishing.
If the publish then succeeds then permissions was the issue, and you can restrict access to the users you wish to be able to publish.