我原来开发了一个.NET 的网站在IIS 服务器下面。
现在由于需要,我需要开发一个Silverlight 的程序插入到网站的某个aspx文件内。 由于Silverlight 程序需要与数据库交互,我在IIS 网站下面定义了WCF 服务器,而且在silverlight 下面引用WEB 服务的时候可以找到wcf 服务。
但是为什么数据取不到那?
由于网站是先建立的,我新建了一个Silverlight的应用 放在网站同一个解决方案下面。
silverlight的ORGmanagementTestPage.aspx 测试页面也生成在iis 网站目录下面。 我手动测试wcf 的服务可以找到对应的服务 http://localhost/ets/ORGWCFservice.svc ,然后想使ORGmanagementTestPage.aspx 测试页面查看效果,但是报错。 那位可以帮忙解决一下?
silverlight 文件内有一个treeview 控件,如果不给treeview 使用wcf 方法绑定数据,就没有报错。
可以正常显示treeview的框框。
另外,如果新建一个silverlight 的项目 ,同时生成一个新网站项目,那么使用wcf 就没问题可以绑定treeview的数据,说明数据绑定是没有问题的。
调试进去看看报什么错,然后再把错误代码贴出来下
加断点没用,直接报错“发生了未经处理的异常(“Silverlight 应用程序中未处理的错误代码:4004”
ORGWCFservice.svc
<%@ ServiceHost Language="C#" Debug="true" Service="ORGWCFservice" CodeBehind="~/App_Code/ORGWCFservice.cs" %>
ORGWCFservice.svc.cs
public class ORGWCFservice : IORGWCFservice { //[ServiceContract ( Namespace = "" )] ////[SilverlightFaultBehavior] //[AspNetCompatibilityRequirements ( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed )] public void DoWork() { } public List<View_oraganization> Getoraganization() { ORG_DataContext db = new ORG_DataContext (); //try //{ return db.View_oraganization.ToList (); //} //catch (System.Exception ex) //{ // throw ex.ToString (); //} } }
IORGWCFservice.cs
[ServiceContract] public interface IORGWCFservice { //[OperationContract] //void DoWork(); [OperationContract] List<View_oraganization> Getoraganization(); }
http://localhost/ets/ORGWCFservice.svc 截图
ORGWCFservice 服务
已创建服务。
若要测试此服务,需要创建一个客户端,并将其用于调用该服务。可以使用下列语法,从命令行中使用 svcutil.exe 工具来进行此操作:
svcutil.exe http://localhost/ets/ORGWCFservice.svc?wsdl
这将生成一个配置文件和一个包含客户端类的代码文件。请将这两个文件添加到客户端应用程序,并使用生成的客户端类来调用服务。例如:
C#
class Test{ static void Main() { ORGWCFserviceClient client = new ORGWCFserviceClient(); // 使用 "client" 变量在服务上调用操作。 // 始终关闭客户端。 client.Close(); }}
由于IIS 网站建立的时候没用设定namespace {} 不知道是否有影响。
另外,于数据库交互 使用 Linq 2 sql 。 请告诉指点啊
@figofeng: 看下你的IIS服务器上的.net版本,linq只有3.0以上才可以用
@az235: .NET 4。0 asp.net 网站里面的其他linq 2 sql 正常的很啊
@figofeng: 这个问题 比较闹心啊,wcf 服务可以正常访问。但是生成silverlight 文件就报错。