2009-05-29 43 views
1

我們在客戶端的服務器上安裝了ASP.NET網站。該網站提供了一個Web服務,其中包含一些由Flash對象調用的Web方法,以顯示新聞提要。如果你瀏覽他們的網站(例如:www.domain.com),除閃光燈之外,一切正常。.NET Web服務的WSDL中URL錯誤的問題

問題是,當我們瀏覽到.asmx時,標題顯示主機是其網絡內部的子域(internal.domain.com)。顯然這不能解決任何公共IP從他們的網絡之外瀏覽。這會導致Flash失敗,因爲Flash對象被嵌入在頁面中,因此正在運行客戶端。

我檢查了有問題的服務器上的計算機名稱,它甚至不匹配「internal.domain.com」 - 它完全不同。它從哪裏獲得這些信息?它不是來自IIS,因爲我們沒有設置主機頭,並且該站點的IP設置爲(全部未分配)。

我們需要強制Web服務針對特定主機運行,或者我們需要更改服務器上的某些內容,以便它解析爲有效的面向公衆的主機名。任何和所有的幫助非常感謝!

+0

這是一個WCF SVC文件或純ASMX服務? – 2009-05-29 21:43:24

+0

我其實並不完全確定,因爲我不是最初將Web服務添加到項目中的人。區別是什麼?我所知道的是,在站點根目錄的WebServices文件夾中有一個.asmx文件,並且代碼隱藏(.cs)文件位於App_Code目錄中。這幾乎是所有這一切。 – Keith 2009-05-30 04:56:35

+0

我們發現我們的客戶端正在使用反向代理來處理他們的網絡/網絡流量,所以通過的主機頭與實際的url /主機名不匹配。他們無法解決這個問題,因此我們不得不刪除調用Web服務的那部分Flash。 – Keith 2009-08-04 15:01:49

回答

0

雖然你可能沒有這個已經,它總是一個良好的開端:

做一個全球性的在兩地的Flash對象和討論的這個字符串的Web服務的源代碼。

聽起來好像某人可能已經將internal.domain.com字符串配置/編碼到Flash對象的請求中。 (主機:是HTTP請求標頭,不是響應標頭,IIRC。)

0

Flash對象是否從C#代碼獲取Web服務URL?如果是這樣,它可能會獲取在將VS Web中的Web引用添加到項目時選擇的默認Web服務URL。因此,它可能指向開發人員的機器/服務器的本地URL,而此服務器在活動服務器上無法識別。