Hello,
We have a problem with Telerik Reporting. We need make a report accessible trought RIA services in silverlight application from remote computer. Problem is that on local computer is all right, but on remote computer not. We would like to configure our ISS on WindowsAutentification and set impersonate on true. But we can’t connect to reporting service. The Error message wich we get is bellow:
IIS specified authentication schemes 'IntegratedWindowsAuthentication, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used.
Our web.config containts this configuration:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="DomainServiceModule" preCondition="managedHandler"
type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off"/>
<authentication mode="Windows" />
<identity impersonate="true" />
<httpModules>
<add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>
</system.web>
<connectionStrings>
<add name="TFSExtensionEntityDiagrams"
connectionString="data source=(local);initial catalog=TFSExtension;user id=pokus;Password=P@s5w0rd"
providerName="System.Data.SqlClient" />
<!--<add name="TFSExtensionEntityDiagrams"
connectionString="Data Source=(local);Initial Catalog=TFSExtension;Integrated Security=True"
providerName="System.Data.SqlClient" />-->
<!--<add name="ReportingLibrary.Properties.Settings.TFSExtension2"
connectionString="Data Source=(local);Initial Catalog=TFSExtension;Integrated Security=True"
providerName="System.Data.SqlClient" />-->
</connectionStrings>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="Telerik.Reporting.Service.ReportService" behaviorConfiguration="ReportServiceBehavior">
<endpoint address="" binding="basicHttpBinding" contract="Telerik.Reporting.Service.IReportService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="resources" binding="webHttpBinding" behaviorConfiguration="WebBehavior" contract="Telerik.Reporting.Service.IResourceService"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ReportServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
11 Answers, 1 is accepted
As you probably know, the Telerik Reporting service is standard WCF service. In this line of thoughts the following post elaborates on your inquiry: WCF basicHttpBinding with Windows Authentication.
Best wishes,
Steve
the Telerik team
I tried to set my project as this article describes but I got the same error.
May be I have wrong settings on my IIS 7.5 (Windows 7).
I have enabled Windows authentification and disabled anonymous access.
If I enable anonymous access report service works well but the user name is not filled.
I attached sample project.
Best regards
Rudolf
Unfortunately I'm not able to run your project due to an error: Microsoft.Ria.Client.targets(303,5): error : Exception has been thrown by the target of an invocation.
I've found very little information on this problem in google so I am not sure what might be causing it. Either way I've reviewed your setup and noticed that you're missing the resources endpoint which is essential for the reporting service to function properly.
As for the original inquiry, in the article I've referenced, I see comments which state that you should apply the same bindingConfiguration to all endpoints you're using and some note that the mex end point should be removed.
Please go through the comments and other articles elaborating on that specific error message, as this is not a reporting service specific problem but a WCF one.
Sincerely yours,
Steve
the Telerik team
after I remove mex evrithing work well exept print button on report viewer.
I use component Q2 SP2 (SL component and report).
Thanks for help
Rudolf
The latest official version is Q2 SP1 (no SP2 is planned or released yet), and in that service pack we've made a fix related to Silverlight viewer print, namely: Unable to print a report when the GET request is too big (e.g. multiple parameters or multivalue parameters with lots of selected values).
As we do not see the latest version present in your download history, please download it, upgrade and let us know if the problem persists. Additionally check whether this problem is related to the authorization or can be exhibited in a standard setup.
Best wishes,
Steve
the Telerik team
Finally I was able to make it work.
Thanks again for help.
If you are interested I can provide you web.config with configuration for windows authetification. :) May be it could to help other people.
Best regards
Rudolf
We would appreciate if you share what was the problem causing the print button not to function and in general providing the wcf service setup should definitely be of help for other users.
Kind regards,
Steve
the Telerik team
first I would like to apologize for delay, I had busy week.
I forgot add resources endpoint when I played with windows authentification.
<
endpoint
address
=
"resources"
binding
=
"webHttpBinding"
bindingConfiguration
=
"WebHttpBindingConfig"
behaviorConfiguration
=
"WebBehavior"
contract
=
"Telerik.Reporting.Service.IResourceService"
/>
Then I had to add bindingConfiguration for this endpoint.
My complete web.config looks like:
<?
xml
version
=
"1.0"
?>
<
configuration
>
<
system.webServer
>
<
modules
runAllManagedModulesForAllRequests
=
"true"
>
<
add
name
=
"DomainServiceModule"
preCondition
=
"managedHandler"
type
=
"System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
/>
</
modules
>
<
validation
validateIntegratedModeConfiguration
=
"false"
/>
</
system.webServer
>
<
system.web
>
<
compilation
debug
=
"true"
targetFramework
=
"4.0"
/>
<
customErrors
mode
=
"Off"
/>
<
authentication
mode
=
"Windows"
/>
<
httpModules
>
<
add
name
=
"DomainServiceModule"
type
=
"System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
/>
</
httpModules
>
</
system.web
>
<
connectionStrings
>
<
add
name
=
"TFSExtensionEntityDiagrams"
connectionString
=
"data source=tfss5;initial catalog=TFSExtension;user id=Dovolena;Password=P@s5w0rd"
providerName
=
"System.Data.SqlClient"
/>
</
connectionStrings
>
<
system.serviceModel
>
<
serviceHostingEnvironment
aspNetCompatibilityEnabled
=
"true"
multipleSiteBindingsEnabled
=
"true"
/>
<
bindings
>
<
basicHttpBinding
>
<
binding
name
=
"BasicHttpBindingConfig"
>
<
security
mode
=
"TransportCredentialOnly"
>
<
transport
clientCredentialType
=
"Windows"
/>
</
security
>
</
binding
>
</
basicHttpBinding
>
<
webHttpBinding
>
<
binding
name
=
"WebHttpBindingConfig"
>
<
security
mode
=
"TransportCredentialOnly"
>
<
transport
clientCredentialType
=
"Windows"
/>
</
security
>
</
binding
>
</
webHttpBinding
>
</
bindings
>
<
services
>
<
service
name
=
"Telerik.Reporting.Service.ReportService"
behaviorConfiguration
=
"ReportServiceBehavior"
>
<
endpoint
address
=
""
binding
=
"basicHttpBinding"
bindingConfiguration
=
"BasicHttpBindingConfig"
contract
=
"Telerik.Reporting.Service.IReportService"
>
<
identity
>
<
dns
value
=
"localhost"
/>
</
identity
>
</
endpoint
>
<
endpoint
address
=
"resources"
binding
=
"webHttpBinding"
bindingConfiguration
=
"WebHttpBindingConfig"
behaviorConfiguration
=
"WebBehavior"
contract
=
"Telerik.Reporting.Service.IResourceService"
/>
</
service
>
</
services
>
<
behaviors
>
<
serviceBehaviors
>
<
behavior
name
=
"ReportServiceBehavior"
>
<
serviceDebug
includeExceptionDetailInFaults
=
"true"
/>
</
behavior
>
</
serviceBehaviors
>
<
endpointBehaviors
>
<
behavior
name
=
"WebBehavior"
>
<
webHttp
/>
</
behavior
>
</
endpointBehaviors
>
</
behaviors
>
</
system.serviceModel
>
</
configuration
>
Hope this will help other :)
Kind regards,
Rudolf Kotulan
Thank you for the details. Would you mind if we convert this thread to forum thread, so that it would be accessible to others?
All the best,
Steve
the Telerik team
Not, at all.
Can I have one more question.
Does RadCompression work with RIA Services v1?
And if yes how to properly configure?
Thanks a lot
Rudolf
RadCompression should be working properly with RIA services. Bellow article explains how to enable RadCompression:
http://www.telerik.com/help/aspnet-ajax/radcompression.html
Regards,
Nikolay
the Telerik team