简要说明一下状况:有两个应用程序A和B,其中A中有几个WebService,而B则调用了A的WebService,以前都是部署在机器C上,现在要转移到机器D上面来,将两个应用程序部署到机器D上后,A运行正常,B在没有调用A的WebService的情况下也一切正常,但是当调用A的WebService时,就发生了以下的错误了,请看下列错误信息
=====================================================================================
The request failed with the error message:
--
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Login.aspx?ReturnUrl=%2fTransactions.asmx">here</a>.</h2>
</body></html>
--.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Net.WebException: The request failed with the error message:
--
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Login.aspx?ReturnUrl=%2fTransactions.asmx">here</a>.</h2>
</body></html>
--.
Source Error:
Line 334: TransactionDetails.Transactions tt = new TransactionDetails.Transactions();
Line 335:
Line 336: string strPay = tt.GetTransactionDetails(TransactionID);
Line 337: NameValueCollection decoder = HttpUtility.ParseQueryString(strPay);
Line 338: string PaymentStatus = decoder["PAYMENTSTATUS"];
Source File: c:\websites\wallet.martbase.com\TradeCompleted.aspx.cs Line: 336
=====================================================================================
左思右想,用了N中方法了,可就是没有解决。
1、怀疑是权限不够,将IIS用户的权限放大到管理员的权限,但是只能在D服务器上正常调用WebService,到了其它机器上就不行了。
2、以为是程序A在D机器上的配置不对,于是将程序A切换到C机器上,但是仍然出现以上的的问题。
3、在A应用程序的web.config里修改身份验证配置,但是依然出现上述问题。
4、网上也有说是两个应用程序所在的机器系统时间不同步,于是我也改成了同步时间了,但是依然出现上述问题。
唉,两天时间在网上找了很多资料,国内程序员貌似很少遇到这个问题,在国外的网站上到是看到了不少类似的帖子,但是大部分是求救的帖子,即使少数网站有解决方法的在我这里也无效。
昨晚上躺在床上想了一晚上,想到了一个办法:将所有WebService调用全部写成从域名来调用(因为系统里都是直接通过localhost来调用WebService的,那么在两台机器上B调用A这样子出问题是在所难免的,但是当时因为将两个应用程序全部移植到D机器上都有错误发生,所以没有意识到这个问题。)
哈哈,今天一大早来到公司,打开电脑就直接按照昨晚想的去做,果然,困扰了两天的问题解决了。
哈哈哈
忙了两天啊,这两天我是茶不思、饭不想,可终于把问题解决了。虽然这种方法不可能解决所有类似的问题,但是至少可以给众位同行们一个参考意见了。如果有帮到某些同行,可一定要记得来回帖哦!!!!!!
转载于:https://blog.51cto.com/maikou/280150