【问题标题】:Adding service reference not generating correctly Reference.cs添加服务引用未正确生成 Reference.cs
【发布时间】:2013-01-07 21:25:54
【问题描述】:

我有一个在虚拟机 Debian OS 上运行的 Java 服务器,

无论如何,一个 WSDL 文件是在服务器端创建的,我正在使用 Visual Studio 中的 Web 服务。发现该服务,我正在添加此服务引用,但是,当我尝试构建时,我收到此错误:

'WindowsFormsApplication2.Properties.Settings' 没有 包含一个定义 'WindowsFormsApplication2_TravelAgency_TravelBooking' 并且没有扩展名 方法“WindowsFormsApplication2_TravelAgency_TravelBooking”接受 类型的第一个参数 'WindowsFormsApplication2.Properties.Settings' 可以找到(你是 缺少 using 指令或程序集 参考?) C:\Users\Me\Documents\Projects\WindowsFormsApplication2\WindowsFormsApplication2\Web References\TravelAgency\Reference.cs 42

这与Reference.cs中的这个有关:

this.Url = global::WindowsFormsApplication2.Properties.Settings.Default.WindowsFormsApplication2_TravelAgency_TravelBooking;

WindowsFormsApplication2_TravelAgency_TravelBooking 带有红色下划线。

我不知道发生了什么,我会添加所有需要的信息,但不确定还要添加什么。

编辑:

我所有的代码如下

Program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

还有Form1.csForm1.cs[Design]

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WindowsFormsApplication2.TravelAgency;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            TravelBooking tb = new TravelBooking();

        }
    }
}

编辑:

如果我在 Netbeans 中执行此操作并创建一个 Java Gui(只是为了测试),它可以正常工作并且效果很好。所以这就是为什么我认为它与生成的代码有关

【问题讨论】:

  • 是否有一个名为 WindowsFormsApplication2_TravelAgency_TravelBooking 的类,它在什么命名空间中?
  • 从您发布的内容看来,服务正在尝试从您的 App.config 中获取该信息,请检查您的服务配置(右键单击服务节点和“配置服务参考...”)跨度>
  • 更新了我的帖子。其他一切都是从添加服务参考自动生成的。 @VoidMain 我应该在我的服务配置中寻找什么
  • 服务引用是直接在同一个项目中,还是包含在被引用的库中?
  • 嗯,关于服务配置的NVM,我想我知道你有什么样的问题,只需选择Web服务的属性并将“Url Behavior”从“Dynamic”更改为“Static”。

标签: c# web-services wsdl


【解决方案1】:

问题在于动态 URL,当您没有在 App.config 中设置 URL 时,它会给您该错误,这里是关于如何将其从静态更改为动态并具有附加值的说明,它显示在这两种情况下生成的代码,当 URL 设置为动态时,自动生成的代码将尝试通过 System.Configuration.ConfigurationSettings.AppSettings 从 App.config 获取它,或者在较新的版本中,从应用程序属性(更糟)和如果没有异常,则会在哪里得到异常,生成的代码会检查空值但不会捕获异常。

您可以自行验证,将 URL 更改为 Dynamic 并检查生成的代码。 一个简单的解决方案,如果您以后不需要更改URL,将其设置为静态,另一种解决方案是在App.config中创建条目,或者在.NET 4+的项目中创建属性

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2013-04-13
    • 2010-11-27
    • 2014-03-22
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 2013-09-13
    • 1970-01-01
    相关资源
    最近更新 更多