【问题标题】:What generates a WebServiceRef Reference.cs file?什么会生成 WebServiceRef Reference.cs 文件?
【发布时间】:2013-12-06 12:46:32
【问题描述】:

使用从一个数据库 (Visual Fox Pro) 读取数据并将其存储在 SQL Server 中的继承代码。这些是独立的系统,使用 WebService 从 VFP 发送包含数据的 XML。

一个字段已添加到两个数据库中,并且数据已在 VFP 数据库中播种,但我们在用于同步数据的 WebService 方面遇到了问题。 WebService 似乎正确地生成和发送 XML(带有新字段和数据),但似乎用于在 .NET 应用程序上处理它的模型没有正确生成,并且对这个新字段没有任何作用。

查看对象浏览器时,其中有一个“OnlineAudienceWebServiceRef”,其中有一个 OnlineAudienceDAL.OnlineAudienceFoxProRow,它似乎包含模型列的描述。我们正在尝试向此对象添加一个新列(以接收新数据),但它似乎是自动生成的。

我的问题是,从根本上说,当 Visual Studio 链接到 WebService 时会发生什么?生成了哪些文件,它们是如何生成的?

鉴于 Web 服务正确发送新数据,我希望在单击解决方案资源管理器中的“更新 Web 引用”时更新 Refs,但显然情况并非如此,我想知道发生了什么.

我们在其中添加了新列的“OnlineAudienceDAL.xsd”,但我们没有看到这会影响用于读取数据的对象。

根据 App.config,该应用使用的是 .NET v4,我们使用的是 Visual Studio 2010。

我不熟悉 .NET 以及这里发生的许多事情,希望能指出一个好的方向。抱歉,如果这令人困惑,请告诉我我可能遗漏了哪些信息,如果有任何不清楚的地方。

感谢您的帮助。

【问题讨论】:

    标签: c# asp.net .net web-services


    【解决方案1】:

    这是一个示例,如果您在本地文件夹中有 WSDL(或 XSD)文件,则 Visual Studio 使用命令行实用程序手动生成 Web 服务。 (WSDL 是 Web 服务定义文件)

    在我的例子中,这是一个批处理文件...并且还生成一个 VB 文件,但很容易切换到 C#,我假设使用最后一个命令行参数。

    cd C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
     wsdl.exe "c:\development\WebServiceClients\CORE_Webservice_Interface_WS.wsdl" /fields /n:Telus /out:"c:\Development\output\WebServiceClients\referencefile.vb" /l:VB
    

    WSDL.EXE 是这个的核心...下面是选项...

    c:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin>wsdl /? Microsoft (R) Web 服务描述语言实用程序 [Microsoft (R) .NET Framework,版本 2.0.50727.42] 版权所有 (C) 微软公司。保留所有权利。

    wsdl.exe - 为 xml Web 服务客户端和 xml Web 服务生成代码的实用程序 从 WSDL 合同文件、XSD 架构和 .discomap 使用 ASP.NET 发现文件。此工具可与disco.exe 配合使用。

    wsdl.exe ...

    • 选项 -

    - WSDL 契约、XSD 模式或 .discomap 文档的 url 或路径。

    /nologo 抑制横幅。

    /语言: 用于生成的代理类的语言。从“CS”中选择, 'VB'、'JS'、'VJS'、'CPP' 或为类提供完全限定名称 实现 System.CodeDom.Compiler.CodeDomProvider。默认 语言是“CS”(CSharp)。缩写形式是 '/l:'。

    /sharetypes 打开类型共享功能。此功能创建一个代码文件 不同类型之间共享的相同类型的单一类型定义 服务(命名空间、名称和线路签名必须相同)。 使用 http:// URL 作为命令行参数引用服务 或为本地文件创建一个 discomap 文档。

    /详细 指定 /sharetypes 开关时显示额外信息。 缩写形式是 '/v'。

    /字段 生成字段而不是属性。缩写形式是 '/f'。

    /订单 在粒子成员上生成明确的顺序标识符。

    /启用数据绑定 在所有生成的类型上实现 INotifyPropertyChanged 接口 启用数据绑定。缩写形式是“/edb”。

    /命名空间: 生成的代理或模板的命名空间。默认命名空间 是全局命名空间。缩写形式是 '/n:'。

    /输出: 生成的代理代码的文件名或目录路径。默认 文件名派生自服务名称。缩写形式是 '/o:'。

    /协议: 覆盖要实现的默认协议。从 'SOAP' 中选择, 'SOAP12'、'HttpGet'、'HttpPost'。

    /用户名: /密码: /领域: 连接到服务器时使用的凭据 需要身份验证。短格式是 '/u:'、'/p:' 和 '/d:'。

    /代理: 用于 http 请求的代理服务器的 url。 默认是使用系统代理设置。

    /代理用户名: /代理密码: /代理域: 连接到代理服务器时使用的凭据 需要身份验证。短格式是 '/pu:'、'/pp:' 和 '/pd:'。

    /appsettingurlkey: 在代码生成中使用的配置键来读取默认值 Url 属性的值。默认是不从配置中读取 文件。短格式是'/urlkey:'。

    /appsettingbaseurl: 计算 url 片段时使用的基本 url。这 还必须指定 appsettingurlkey 选项。网址片段是 从 appsettingbaseurl 计算相对 url 的结果 到 WSDL 文档中的 url。缩写形式是 '/baseurl:'。

    /可解析错误 以类似于编译器报告的格式打印错误。

    • 高级 -

    /服务器 服务器交换机已被弃用。请改用 /serverInterface。 使用为 xml Web 服务实现生成一个抽象类 基于合同的 ASP.NET。默认是生成客户端代理 类。

    /服务器接口 为 ASP.Net 的服务器端实现生成接口 网络服务。为 wsdl 中的每个绑定生成一个接口 文件。 wsdl 单独实现了 wsdl 契约(类 实现该接口的不应包括以下任何一项 关于类方法:Web Service 属性或序列化 更改 wsdl 合同的属性)。缩写形式是 '/si'。

    /参数: 从指定的 xml 文件中读取命令行选项。这让你 指定命令行中不可用的选项,例如选择 生成哪种类型的异步编程模型。有关详细信息, 请参阅工具文档。缩写形式是 '/par:'。

    【讨论】:

      猜你喜欢
      • 2014-03-22
      • 1970-01-01
      • 2014-06-14
      • 2023-01-18
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多