我在Silverlight应用程序中有一个WCF服务方法,它将一些数据插入到部署在共享GoDaddy服务器上的SQL Server数据库中。有些方法有效,有些方法没有,但是当应用程序在本地运行时(使用本地数据库),所有这些方法都有效。我得到通用“远程服务器返回错误:NotFound”,我似乎无法获得更多信息。当我直接从服务类(而不是通过服务引用)运行方法时,它可以正常工作。这是我的web.config的服务部分:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<behaviors>
<serviceBehaviors>
<behavior name="default">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<dataContractSerializer maxItemsInObjectGraph="6553600" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IncreasedBuffer"
maxBufferSize="2147483647" maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxBytesPerRead="2147483647" maxDepth="2147483647"
maxArrayLength="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="GreekTools.Services.DataService"
behaviorConfiguration="default">
<endpoint address="" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IncreasedBuffer"
contract="GreekTools.Contracts.IDataService" />
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
有什么想法吗?
答案 0 :(得分:1)
当您尝试对不存在的URL执行请求时,通常会出现这种情况。例如,您希望服务位于http://hostname/path/Service.svc
,但它实际上位于http://hostname/Service.svc
。
您最好的做法是下载Web调试工具(Fiddler是一个不错的选择)并检查从Silverlight客户端发送到Web服务器的实际请求。很可能你会发现一个不正确的网址路径有问题。
答案 1 :(得分:1)
可能是您在服务器端部署了旧版本的dll。这可以解释为什么有些工作,有些则没有。
如果不是这种情况,那么有什么模式可行,哪些无效?