我们的客户在我们的网站上有一个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