Publishing Troubleshooting

Revision as of 10:38, 8 May 2012 by Csalter (talk | contribs) (Validate IIS Config)

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.

XLCubedWebConfigIESettings.png


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.

XLCubedWebConfigIIS5AuthenticationWindows.png

IIS 7/7.5

Select the XLCubedWeb directory and open the "Authentication" section.

XLCubedWebConfigIIS6Authentication.png

Ensure "ASP.NET Impersonation" and "Windows Authentication" are enabled, and others are disabled.

XLCubedWebConfigIIS6AuthenticationWindows.png

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.

XLCubedWebConfigIIS5AuthenticationBasic.png

IIS 7/7.5

Select the XLCubedWeb directory and open the "Authentication" section.

XLCubedWebConfigIIS6Authentication.png

Ensure "ASP.NET Impersonation" and "Basic Authentication" are enabled, and others are disabled.

XLCubedWebConfigIIS6AuthenticationBasic.png

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.

XLCubedWebConfigIIS5AuthenticationAnon.png

IIS 7/7.5

Select the XLCubedWeb directory and open the "Authentication" section.

XLCubedWebConfigIIS6Authentication.png

Ensure "ASP.NET Impersonation" and "Anonymous Authentication" are enabled, and others are disabled.

XLCubedWebConfigIIS6AuthenticationAnon.png

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.

See Also