iis配置根目錄/myweb/ 轉換為應用程式,web服務專案直接發布到此檔案夾。
內網直接連接 http://內網IP:埠號/myweb/myweb.asmx,成功
測驗方法 http://內網IP/myweb/myweb.asmx?op=HelloWorld,成功
點擊除錯后 http://內網IP/myweb/myweb.asmx/HelloWorld ,成功
外網連接 http://外網IP:埠號/myweb/myweb.asmx,成功
測驗方法 http://外網IP:埠號/myweb/myweb.asmx?op=HelloWorld,成功
此時的頁面顯示的請求和回應示例中的post和內網連接時是一樣的,都是內網IP
點擊除錯后跳轉的頁面是http://內網IP/myweb/myweb.asmx/HelloWorld ,失敗。
請問應該如何解決此問題?先謝謝了。
uj5u.com熱心網友回復:
外網服務能通過ie訪問,并得到xml結果,就說明不是webservice的問題,只能是你呼叫程式的問題uj5u.com熱心網友回復:
只是用瀏覽器除錯,可以到方法的界面,此界面提示SOAP請求和回應事例中的HOST仍然是內網IP,此界面點除錯后跳轉到xml結果的界面并不是外網IP,是內網IP,所以得不到xml結果。
uj5u.com熱心網友回復:
你webservice怎么寫的?難道是寫死ip的?怎么會外網跳回內網ipuj5u.com熱心網友回復:
就是新建asp.net web應用程式,添加web服務(ASMX),直接用默認的helloworld方法,發布到服務器上,什么都沒改。通過http打開asmx除錯。在內網測驗成功,改成外鏈到最后除錯那一步就跳回內網IP了。
uj5u.com熱心網友回復:
你看看組態檔,是不是添加錯了webservice了,不是外網的uj5u.com熱心網友回復:
這是默認的組態檔,vs發布出來什么都沒改。
<?xml version="1.0" encoding="utf-8"?>
<!--
有關如何配置 ASP.NET 應用程式的詳細資訊,請訪問
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation targetFramework="4.0" />
</system.web>
</configuration>
<!--ProjectGuid: 8966C622-F168-4426-A11F-A7994617ACA0-->
uj5u.com熱心網友回復:
你這根本沒有webservice的地址啊uj5u.com熱心網友回復:
難不成你寫死在code里了uj5u.com熱心網友回復:
我找出原因了,是Nginx配置的問題,我在nginx.conf里加上以下這幾行,不再跳轉內網IP了,但少了外網IP埠號,請問這應該怎么設定呢?
也就是最后跳轉到的頁面地址,現在是http://外網IP/myweb/myweb.asmx/HelloWorld,
實際要的是http://外網IP:埠號/myweb/myweb.asmx/HelloWorld
proxy_set_header HOST $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
uj5u.com熱心網友回復:
默認是80埠,你加一個外網埠就是了uj5u.com熱心網友回復:
怎么加都不起作用proxy_set_header HOST這里試了$http_host:$server_port,$host:埠號,$http_host:埠號等等,沒一個起作用的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/11460.html
標籤:C#
