在我的网络应用程序引用的类库中访问wcf数据服务时遇到问题

时间:2019-04-01 07:38:48

标签: vb.net visual-studio-2015 wcf-data-services

从我的Web应用程序通过vb.net类访问云数据服务时遇到资源错误。

我已经编写了一个vb.net类库(称为MYAPPIF),该库引用了具有这些功能的通用功能的wcf数据服务。例如,我可能想保存交易,我将通过此类库进行操作。然后,我的Web应用程序引用了该类库,并通过“导入MYAPPIF”看到常见的功能,并且可以看到云服务参考。

    dim oMyAppIF = new MyAppIF.class
    dim oCloudContext = oMyAppIF.GetWCFConnection()  ' a function in class
    oQueryList = (From seldata In oCloudContext.vwContractList
                  Order By seldata.cnname
                  Select seldata).ToList()

网站编译正常,但是当我运行它时,出现以下错误:

描述:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

异常详细信息:System.Data.Services.Client.DataServiceClientException:找不到段'vwContractList'的资源。

堆栈跟踪:

[DataServiceClientException:找不到段'vwContractList'的资源。]    System.Data.Services.Client.QueryResult.ExecuteQuery()+487    System.Data.Services.Client.DataServiceRequest.Execute(DataServiceContext上下文,QueryComponents queryComponents)+186

1 个答案:

答案 0 :(得分:0)

请勿通过在类库项目中添加服务引用来调用服务,因为类库将使用当前Web APP项目的WebConfig文件而不是类库的配置。您可以将servicemodel下的配置复制到当前项目中,或使用channel factory调用动态写入配置。

public string Invocation()
        {
            //ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
            //return client.GetData(34);
            ChannelFactory<IService1> factory = new ChannelFactory<IService1>(new BasicHttpBinding(), new EndpointAddress("http://10.157.18.36:12000/service1.svc"));
            IService1 sv = factory.CreateChannel();
            return sv.GetData(46);
        }

https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-use-the-channelfactory
随时让我知道是否有什么可以帮助您的。