专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Silverlight

求:远程服务器返回了异常: NotFound之解决方法

发布时间:2011-06-27 19:59:51 文章来源:www.iduyao.cn 采编人员:星星草
求:远程服务器返回了错误: NotFound之解决办法
silverlight通过WCF向后台数据库查询数据,最多需要查询60个表的数据,查询已经没有问题,通过union all连接字符的方式,http://topic.csdn.net/u/20111009/15/bf137677-588d-4c2c-9374-9b70de0b3a41.html。但现在问题又来了,有的能查询60天,有的查询不了60天,就报“远程服务器返回了错误: NotFound”,网上查了一下,有的说超时,跨域。下面这篇文章跟我的问题有点相似,http://social.msdn.microsoft.com/Forums/pl-PL/silverlightzhchs/thread/859f8920-2511-4e24-b960-55353cafba57,但也没有解决我的问题,请问有什么解决办法吗?

------解决方案--------------------
通过WCF访问服务器数据。数据传输大小是有限制的。因为返回的数据量过大。
在Web.config中加入以下代码:
<configuration>
.
.
.
<system.serviceModel>
<services>
<service name="SAPWebServer.Web.SAPDomainService" behaviorConfiguration="SAPWebServer.Web.SAPDomainService"></service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SAPWebServer.Web.SAPDomainService">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>


其中SAPWebServer.Web.SAPDomainService为“项目名.Web.域服务名”
------解决方案--------------------
用以下方式silverlight访问ashx文件报同样的错误
/// <summary>
/// 工具区域(设计模式下)路由
/// </summary>
public class ToolsArea_DesignMode_Router
{
/// <summary>
/// 从服务器获取
/// </summary>
/// <param name="p"></param>
/// <returns></returns>
internal void GetXMLFromServer(string ContentKey)
{
string Address = "http://" + Application.Current.Host.Source.Host + ":" + Application.Current.Host.Source.Port + "/Action/TopologyEngineHandler.ashx?Method=" + ContentKey;
WebRequest request = WebRequest.Create(Address);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
//request.BeginGetRequestStream(new AsyncCallback(RequestReady), request);
request.BeginGetRequestStream(new AsyncCallback(RequestReady), request);
}

private void RequestReady(IAsyncResult ar)
{
WebRequest request = ar.AsyncState as WebRequest;
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(request.EndGetRequestStream(ar)))
{
sw.Write("Postdatatoserver.");
sw.Flush();
}
request.BeginGetResponse(new AsyncCallback(ResponseReady), request);

}

private void ResponseReady(IAsyncResult asyncResult)
{
WebRequest request = asyncResult.AsyncState as WebRequest;
WebResponse response = request.EndGetResponse(asyncResult);
using (System.IO.Stream responseStream = response.GetResponseStream())
{
System.IO.StreamReader reader = new System.IO.StreamReader(responseStream);
string p = reader.ReadToEnd();
}

}
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: