我們的客戶在我們的網站上有一個Silverlight 4.0(ASP.Net 4.0)應用程序,供客戶驗證後使用。該程序加載正常,但無法與創建的WCF服務通話。內部一切都很好。防火牆後的銀色和WCF服務
Silverlight應用程序託管在IIS 7.5上,內部IP爲10.1.1.8,防火牆將現實應用程序重定向到內部IP地址。這部分工作正常。 WCF服務位於IP 10.1.1.10上,並且是具有不同IP地址的相同虛擬機。數據庫服務器也可以順利通過。
http://www.ntbuddy.com/images/stackoverflow/SilverlightWcf1.png
- 內部用戶(10.1.15.1)可以利用網站就好
- 外部用戶可以沒有任何問題訪問該網站,除了當他們嘗試Silverlight應用程序
- 當程序被訪問,它在10.1.1.10調用Wcf程序。作爲內部用戶可以看到他們工作正常的Wcf。外部用戶不能。
- 如果我從ASP.Net網頁調用相同的例程,網頁將返回結果沒有問題。
服務引用中的服務引用是「http://10.1.1.10/ServiceReference/Common.svc」,用於下面的例程。
下面是最簡單的例程,我向Wcf請求一個自動編號例程的數字。只對內部用戶(Silverlight的)
作品
private void BtnAutoNumberClick(object sender, RoutedEventArgs e)
{
AutoNumber("AUTO");
}
private void AutoNumber(string autoNumber)
{
var objResult = new CommonClient();
objResult.GetAutoNumberCompleted += new EventHandler<GetAutoNumberCompletedEventArgs>(LoadResultsAutoNumber);
objResult.GetAutoNumberAsync(autoNumber, 4, autoNumber);
}
void LoadResultsAutoNumber(object sender, GetAutoNumberCompletedEventArgs e)
{
txtOrderNumber.Text = string.Format("{0}", e.Result.AutoNumber);
}
什麼我需要在我的Silverlight應用程序改變,使其對外部用戶以及內部用戶的工作?我想避免讓Wcf服務暴露,但如果這是必需的。
什麼意思是「不能說」?你有什麼異常? – 2010-10-01 17:28:13
我同意Jace Rhea,如果你能提供更多的信息,它會有所幫助。但是,WCF和Silverlight之間的典型問題是缺少WCF服務器上IIS根目錄中的clientaccesspolicy.xml文件。請查看:http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx或發佈更多信息(異常堆棧跟蹤)。 – Maate 2010-10-01 17:43:34