首页 新闻 搜索 专区 学院

asp.net 本地调用webservice正常,发布到服务器后就异常,求大神指点

0
悬赏园豆:50 [已解决问题] 解决于 2014-08-06 09:55

asp.net 中写了一段代码,在添加成功数据后,调用一个里面有webService的方法,在本地怎么运行都没问题,就是发布后就出问题了,这个怎么回事,求大神指教下面是小弟的代码,这个方法里面调用了一个webservice,各位大神麻烦给看一下了,网上有关说法是关于权限的设置,就是不知道怎么设置权限,要是大神们有答案的话,麻烦说的详细一下,先谢谢各位了

 public void ReuploadWebService(HttpContext context) 
        {
            int StuID = Convert.ToInt32(context.Session["stu_id"]);
            string F_USER_ID = context.Session["user_id"].ToString();
            Telemedicine WS = new Telemedicine();
            PubDataOper SaveLog = new PubDataOper();
            SaveLog.SaveSysLog(int.Parse(context.Session["user_id"].ToString()), 4, StuID, "拒绝会诊(专家会诊列表)");

            string RltValue = WS.ReuploadConsultation(StuID, int.Parse(context.Session["user_id"].ToString()));

            XmlDocument xml_doc = new XmlDocument();
            try
            {
                xml_doc.LoadXml(RltValue);

            }
            catch
            {
                context.Response.Write("no");
            }
            string RltStaID = "";
            string RltStaMsg = "";
            XmlNode node1 = (XmlElement)xml_doc.DocumentElement.SelectSingleNode("/smit_telemed_result/state_id");
            try
            {
                RltStaID = node1.InnerText;
            }
            catch
            {
                context.Response.Write("no");
               // context.Response.Write("建议操作成功!拒绝失败,错误原因:"); 
            }
            XmlNode node2 = (XmlElement)xml_doc.DocumentElement.SelectSingleNode("/smit_telemed_result/state_msg");
            try
            {
                RltStaMsg = node2.InnerText;
              
            }
            catch
            {
                context.Response.Write("no");
               // context.Response.Write("建议操作成功!拒绝失败,错误原因:");
            }
            if (RltStaID == "0")
            {
                context.Session["success"] = "success";
                context.Response.Write("insertOk");
            }
            else
            {
                context.Response.Write("建议操作成功!拒绝失败,错误原因:");
            }

        }
情义之印的主页 情义之印 | 初学一级 | 园豆:15
提问于:2014-07-17 15:29
< >
分享
最佳答案
0

首先,你得理清思路:

1.你的webservice部署的服务器和你开发的服务器是不是同一台机子。

2."webservice是别人的代码,我只是调用了一下人家的方法"你是直接通过添加引用来访问的?

3.如果你在本地调用时成功的,那么发布到iis上,直接通过浏览器地址栏访问时是否成功?

4.如果第3师成功的。那么通过程序访问报的错误是什么?

另外你可以看下http://www.cnblogs.com/fengchengjushi/p/3358291.html这个,如果还有不理解的。可以联系我。

收获园豆:10
深谷&幽兰 | 初学一级 |园豆:131 | 2014-07-18 08:42

您好,有几个地方不太明白,需要问您一下:

1.webservice 部署服务器和部署项目的服务器不是一台  

2.调用我是直接添加的引用,然后在ashx中调用了一个方法

3.本地调用成功,发布到服务器上 config 中webservice中地址变了,但是两个Service地址都可以在浏览器中访问。

4.通过程序报这个错误

情义之印 | 园豆:15 (初学一级) | 2014-07-18 09:08

@情义之印: 

你也可以看看这个:http://www.cnblogs.com/insus/articles/2014059.html

深谷&幽兰 | 园豆:131 (初学一级) | 2014-07-18 10:02

@深谷&幽兰: 你好,可以帮我看下我的问题嘛?谢谢!!http://q.cnblogs.com/q/83972/

鸥翼网络 | 园豆:10 (初学一级) | 2016-07-08 07:21
其他回答(4)
0

你的webService发布到服务器上面去了吗?地址对了吗?

收获园豆:10
晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-17 15:32

我只是把项目发布的,没对webservice操作,webservice是别人的代码,我只是调用了一下人家的方法,webservice要发布怎么发布呢  

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 15:34

@情义之印: 你在本地是怎么调用webservice 的?

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-18 08:13

@晓菜鸟: 添加服务引用,然后调用一个方法   webService发布是没问题的,地址我在浏览器上可以访问,项目和webservice的服务器不是一个 

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-18 08:53

@情义之印: 问题1:你添加的引用的 dll 是存放在你的项目文件夹内部的吗?

          问题2:把IIS应用程序池的“启用 32 位应用程序”设置为“true” 之后问题还是一样吗?

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-18 14:33
0

Telemedicine WS = new Telemedicine();

在你的 web.config 是如配置的?

收获园豆:10
Launcher | 园豆:45045 (高人七级) | 2014-07-17 15:52
 <SmitERP.Properties.Settings>
   <setting name="SmitERP_TeleMedWS_Telemedicine" serializeAs="String">
    <value>http://192.168.1.214:8002/Telemedicine.asmx</value>
   </setting>
  </SmitERP.Properties.Settings>

webconfig里面是这样写的 ,不知道是不是你想要看的那部分    http://192.168.1.214:8002/Telemedicine.asmx这个页面也是可以用的

 

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 16:07

@情义之印: 你可以在服务器上打开 IE,在地址栏中输入:http://192.168.1.214:8002/Telemedicine.asmx,测试服务器是否可以访问。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-17 16:09

@Launcher: 这个是可以的,只是点出来显示的是一堆节点内容  

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 16:12

@情义之印: 那访问没问题。你的服务器上的 web.config 也是这么配置的吧。然后你可以把调用时抛出的异常给贴出来看看。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-17 16:13

@Launcher: 好的 

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 16:16

@Launcher: 我发布到服务器上后异常就是本来该显示提示框的,然后没反应,我用ajax请求ashx时用的error 才发现错误的,大神,这个怎么整啊,在本地还能跟踪一下,就是部署到服务器上就没效果,也没法跟踪

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 16:24

@Launcher: 要不你把你qq发出来吧,咱们qq聊

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 16:26

@情义之印: 

try { WS.ReuploadConsultation } catch(e) {context.Response.Write(e.Message);}

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-17 17:00

@Launcher: 你好,在服务器上我的异常效果是什么都不显示,在本地有异常效果弹框这是本地测试的异常

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 19:56

@情义之印: 你可以在本地机器上打开 IE,在地址栏中输入:http://192.168.1.214:8002/Telemedicine.asmx,测试服务器是否可以访问。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-18 09:06

@Launcher: 这个是可以访问的,现在是本地异常没有了,就是发布到服务器上会出现这个错误

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-18 09:11

@情义之印: 把应用程序池的“启用 32 位应用程序”设置为“true”。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-18 09:19
0

webconfig问题

收获园豆:10
吴瑞祥 | 园豆:29187 (高人七级) | 2014-07-17 15:56

大神,能说的具体一点吗 

 

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 16:07

@情义之印: 跟楼上一个意思,听楼上的吧

支持(0) 反对(0) 吴瑞祥 | 园豆:29187 (高人七级) | 2014-07-17 16:14
0

你发布到服务器上后,你发布的服务器跟你调用的webservice服务器之间是通的么?

收获园豆:10
Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-17 17:24

我不知道两个服务器之前是不是通的  现在我捕获到异常了  好像不通  在服务器上异常弹框都不显示  这是我在本地捕获的异常 

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-17 19:55

@情义之印:这个效果看,肯定是不通了,你可以在发布的服务器上用ping命令去ping 192.168.1.241.

我估计肯定不通。那你的问题就是服务器通信的问题了。

支持(0) 反对(0) Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-18 09:19

@Alex_QY1987: 嗯嗯 谢谢你的思路,我试试 

支持(0) 反对(0) 情义之印 | 园豆:15 (初学一级) | 2014-07-18 09:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册