打开软件后出现远程服务器返回错误:(500)
打开软件后出现的这种情况并非你的电脑或者系统的出现了问题,而是打开的这个软件时其远程的服务器的主机没有响应造成的,发生错误时,往往无法直接打开网页,所以也无从通过网页源代码来分析错误原因。
附件:远程服务器返回错误的解决方案(网管使用):
在net中发送 xml post请求和接受xml 的post请求时,经常会遇到“远程服务器返回错误: (500) 内部服务器错误”。这里有2种解决办法:
方法一:修改请求端Content-Type 为“text/xml”(httpclientHeadersAdd("Content-Type", "text/xml");)
方法二:
后台:public partial class WebForm1 : SystemWebUIPage
var client = new WebClient();
clientHeadersAdd("SOAPAction: \"DZZB\"");
clientHeadersAdd("Content-Type: text/xml; charset=utf-8");
//httpclientHeadersAdd("Content-Type", "text/xml");
var data = new DataTable("SyncGPS");
dataColumnsAdd("SIM");
dataColumnsAdd("LPN");
dataColumnsAdd("longitude");
dataColumnsAdd("latitude");
dataColumnsAdd("speed");
dataColumnsAdd("direction");
dataColumnsAdd("operationStatus");
dataColumnsAdd("statusDesc");
dataColumnsAdd("gpstime");
dataRowsAdd(new object[] { "13216654124", "", 12125089, 3016242, 50, 102, 0, "", "2012-06-27 15:22:52" });
using (var sw = new StringWriter())
{
dataWriteXml(sw); var body = swToString();
var xdoc = new XmlDocument(); xdocLoadXml(body);
body = xdocFirstChildInnerXml;
var xml = "";
xml += "http://schemasxmlsoaporg/soap/envelope/\">";
xml += ""; xml += body; xml += "";
xml += "";
// var result = clientUploadString("http://piranhaoicpnet:8881/webservice/ObtainDataasmx/SendXml", "POST", xml);
var result = clientUploadString(" http://localhost:8272/ObtainDataasmx/SendXml", "POST", xml);
ResponseWrite(result);
//ConsoleWriteLine(result);
}
前台:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1aspxcs" Inherits="WebService_DZZBWebForm1" ValidateRequest="false" %>
谢谢采纳!
浏览器访问web服务器,服务器的脚本是java做的,java脚本里访问netty的java接口不就得了,当然只是一瞬间访问了。如果是长时间访问,你得用java单独做个程序访问netty
调用webservice超时问题的解决:
一服务器端设置
1、webconfig配置,<systemweb></systemweb>里面增加:<httpRuntime maxRequestLength="10240" appRequestQueueLimit="100" useFullyQualifiedRedirectUrl="true" executionTimeout="1200" />
2、扩大代理类的超时限制,默认是90秒
YourWebService yws = new YourWebService();
ywsTimeout = 1200000; //20分钟
3、IIS属性-网站 连接超时时间 1200秒
二客户端设置
1、修改 appconfig 文件,添加如下代码:
<httpRuntime executionTimeout="600" />
请求执行超时时间为600秒(默认为110秒)
2、设置 Web services 的 Timeout 属性
对 XML Web services 的同步调用的超时(以毫秒为单位)。默认为 100000 毫秒。
lywSqCommonsqsdDataGetData getData = new lywSqCommonsqsdDataGetData();//GetData 为类名
getDataTimeout=700000;//单位为毫秒
指示 XML Web services 客户端等待同步 XML Web services 请求完成的时间(以毫秒计)。
提示:如果将 Timeout 属性设置为 TimeoutInfinite,则指示该请求无超时。即使 XML Web services 客户端可以将 Timeout 属性设置为无超时,Web 服务器仍可以在服务器端使请求超时。
系统将以上面两项设置的最小者作为操作超时的时间长度。
发给“别人”就访问不了,这个“别人”是在外网还是在你局域内网。从你说的现象应该是内网能访问,但是公网访问不了。ping不通首先查看是否服务器禁ping了。感觉应该是防火墙只对内网的ip段做了通行,对公网的ip地址并没有放行造成的。
1如果你的webservice是net写的,可能是你的服务器上没有安装客户端(最少10G的)或是你的版本低于8i
2如查你的webservice是java写的,可能是你的瘦客户端版本有点老,更新一下
0条评论