【问题标题】:ASMX Webservice has no asyc BEGIN .. END optionsASMX Web 服务没有异步 BEGIN .. END 选项
【发布时间】:2017-06-15 22:15:26
【问题描述】:

我目前正在通过示例如何在 https://developer.xamarin.com/guides/xamarin-forms/web-services/consuming/asmx/ 上使用 Xamarin Forms 中的 ASMX Web 服务。我阅读了文本并检查了示例。我尝试使用自己的网络服务构建相同的结构,但不幸的是这不起作用。

问题是:虽然在示例中有“todoService.BeginGetTodoItems”和“todoService.EndGetTodoItems”等方法,但在我的网络服务中它们不存在。我只有例如“登录”,但我没有“BeginLogin”和“EndLogin”。

所以我可以称它为同步(可以正常工作)但不是异步。

我如何获取/创建开始和结束方法?

非常感谢!

更新:澄清一下:在 TodoASMX 示例应用程序的 ASMXService 的 Reference.cs 中,包含这些方法,例如对于 GetTodoItems:

public TodoItem[] GetTodoItems()
public System.IAsyncResult BeginGetTodoItems(System.AsyncCallback callback, object asyncState)
public TodoItem[] EndGetTodoItems(System.IAsyncResult asyncResult)
public void GetTodoItemsAsync()
public void GetTodoItemsAsync(object userState)
private void OnGetTodoItemsCompleted(object arg)

但在我自己的 ASMX Web 服务中,只有这些方法可用,例如对于默认的 HelloWorld:

public string HelloWorld()
public void HelloWorldAsync()
public void HelloWorldAsync(object userState)
private void OnHelloWorldOperationCompleted(object arg)

所以你看,BeginHelloWorld 和 EndHelloWorld 不见了......

Update2:问题很容易重复:在https://developer.xamarin.com/samples/xamarin-forms/WebServices/TodoASMX 下载文章https://developer.xamarin.com/guides/xamarin-forms/web-services/consuming/asmx/ 提供的示例。它工作正常。现在从 iOS 项目中删除 webreference ASMXService 并再次手动添加它。 URL 是http://todoasmxservice.azurewebsites.net/TodoService.asmx,类型应该是“.NET 2.0 Web Services”,因为它是 ASMX 示例,而不是 WCF 示例。现在我收到以下错误消息,因为 BEGIN 和 END 方法不再存在:

/TodoASMX/iOS/SoapService.cs(87,87):错误 CS1061:类型 TodoASMX.iOS.ASMXService.TodoService' does not contain a definition forBeginGetTodoItems' 并且找不到扩展方法 BeginGetTodoItems' of typeTodoASMX.iOS.ASMXService.TodoService'。您是否缺少程序集参考? (CS1061) (TodoASMX.iOS)

我做错了什么?如果我只是删除网络服务并再次添加它,我还需要做什么? 非常感谢!!

【问题讨论】:

    标签: web-services xamarin xamarin.forms asmx


    【解决方案1】:

    如果我们不添加它以将引用菜单添加到我们的项目,则无法访问 Web 服务。

    尝试右键单击您的项目引用 > 添加网络引用 > 输入 .asmx 的网址

    【讨论】:

    • 当然。当然,我已经将网络引用添加到我的项目中。如前所述,没有 ASYNC 它可以正常工作。但我当然想称它为异步。因此我需要这些“todoService.BeginGetTodoItems”和“todoService.EndGetTodoItems”,但我没有。我只有“myService.Login”,但没有“myService.BeginLogin”或“myService.EndLogin”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多