您好我将Silverlight项目部署到现有网站(使用aspx页面的普通网站)时遇到问题。
一切正常,但是当silverlight尝试连接到RIA服务时,它会失败,因为网站每次都会重定向到登录页面。
我在网站的web.config上找到了这个,这似乎造成了麻烦:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="AdWsSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://webserver/ADWS/AdWs.asmx" binding="basicHttpBinding"
bindingConfiguration="AdWsSoap" contract="AdWs.AdWsSoap" name="AdWsSoap" />
</client>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
正如您所看到的,该网站正在使用自定义绑定,我猜RIA服务通过它,这就是为什么它重定向到网站的登录页面。 我无法修改此自定义绑定(因为它会影响使用此配置运行的许多其他应用程序)。
有没有办法解决这个问题,可能指定RIA服务不使用这个自定义绑定??
我试图自己创建.SVC文件并以这种方式覆盖AddEndpoints:
protected override void AddEndpoints()
{
foreach (Uri uri in this.BaseAddresses)
{
AddRestWithJsonEndpoint(uri);
}
}
但它不断传递自定义绑定。请帮忙。
提前致谢。
答案 0 :(得分:0)
玩了一段时间之后,我发现了如何解决我的问题:
首先,一切都取决于web.config及其包含的标签。例如,在我的情况下,我正在为silverlight配置创建一个单独的配置文件,但最后我需要的是将我的silverlight的项目web.config与我在主网站上获得的项目合并。
其次,注意在silverlight项目周围使用的连接字符串,在我的情况下,我在项目周围的某些层中有很多连接字符串,所以我忘了在主web.config上复制几个,这就是我有错误的原因。
希望它有所帮助。
再见。