C# 此时无法启动异步操作。

标签 c# asp.net asynchronous

当我单击以 asp web 表单提交的按钮时,我尝试运行我的代码。我一点击按钮就出现错误有人知道原因吗?错误消息显示如下:

Server Error in '/' Application.

An asynchronous operation cannot be started at this time. Asynchronous operations may only be started within an asynchronous handler or module or during certain events in the Page lifecycle. If this exception occurred while executing a Page, ensure that the Page is marked <%@ Page Async="true" %>.

aspx 文件:

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<div class="jumbotron">
    <h1>Luis</h1>        
        <asp:TextBox ID="TextBox1" runat="server" Height="40px" Width="273px"></asp:TextBox>    
</div>
    <p>
       <input id="Submit1"  runat="server" type="submit" value="Check" onserverclick="Submit_Click"/></p>  
    <p>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</p>
</asp:Content>

.cs 文件:

public partial class _Default : Page
{
public async void Submit1_Click(object sender, EventArgs e) {

    string utterance = TextBox1.Text;

    var client = new HttpClient();
    var queryString = HttpUtility.ParseQueryString(string.Empty);

    // This app ID is for a public sample app that recognizes requests to turn on and turn off lights
    var luisAppId = "75bcaaff-1dc1-4dsa-adf7-63584cea339a";
    var subscriptionKey = "43314f19c5ecgdascba6a00f1d3cc3533";

    // The request header contains your subscription key
    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);

    // The "q" parameter contains the utterance to send to LUIS
    //queryString["q"] = "turn on the left light";

    // These optional request parameters are set to their default values
    queryString["timezoneOffset"] = "0";
    queryString["verbose"] = "false";
    queryString["spellCheck"] = "false";
    queryString["staging"] = "false";

    var uri = "https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/" + luisAppId + "?" + queryString + "&q=" + utterance;
    var response = await client.GetAsync(uri);

    var strResponseContent = await response.Content.ReadAsStringAsync();

    // Display the JSON result from LUIS
    //Console.WriteLine(strResponseContent.ToString());
    Label1.Text = strResponseContent.ToString();
}
}

最佳答案

您正在调用 ASYNC 方法,答案就在错误中。

ensure that the Page is marked <%@ Page Async="true" %>.

关于C# 此时无法启动异步操作。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682205/

相关文章:

c# - 如何告诉继承类不要调用其基类的无参数构造函数?

c# - 阅读下面的 xml 显示 c# 中的错误

c# - 在 HTTP 客户端中使用公共(public)代理服务器

c# - 报错不能在静态类中声明实例成员

c# - 更改主页上链接按钮上的文本?

asp.net - MVC JSON 操作返回 bool

java - 垂直x。在一次调用 update() 中执行多次插入

javascript - javascript 的异步函数实际上是同步的吗?

c# - 动态数据 IObjectContextAdapter 缺少引用

entity-framework - Entity Framework 异步与 Task.FromResult