我的 ASP.NET / Visual Basic 代码有啥问题?

Posted

技术标签:

【中文标题】我的 ASP.NET / Visual Basic 代码有啥问题?【英文标题】:What's wrong with my ASP.NET / Visual Basic code?我的 ASP.NET / Visual Basic 代码有什么问题? 【发布时间】:2021-08-16 17:03:50 【问题描述】:

我是 ASP.NET/Visual Basic 的新手。我正在尝试创建一个简单的获取请求以从数据库中获取数据。但是每当页面加载时,我都会在控制台中收到一个通用的 500 服务器错误代码。这是我的 ASP.NET 代码:

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <script>
        var dataSource = new kendo.data.DataSource( transport: 
                                read:  
                                        url: "/webservices/alertService.asmx/GetAlert",
                                        dataType: "json"
                                        ,
                                update: 
                                        url: "/webservices/alertService.asmx/UpdateAlert",
                                        dataType: "json"
                                        
                         );
        var alertObj = dataSource.read();
        console.log("alertObj: ", alertObj);
        var pageBody = document.getElementById('page-body');
        
        pageBody.innerhtml = "<h1>Website alert page is currently being built...</h1><br/>" +
                             "<p>" + alertObj.alert_title + "</p><br/>"  +
                             "<p>" + alertObj.alert_body + "</p><br/>"  
    </script> 

    <div id="page-body"></div>

</asp:content>

这是我的 Visual Basic 代码:

<%@ WebService Language="VB" Class="MapService" %>

Imports System
Imports System.IO
Imports System.Security
Imports System.Configuration
Imports System.Xml
Imports System.Web
Imports System.Web.Script.Serialization
Imports System.Web.Script.Services
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Xml.Serialization
Imports mysql.Data.MySqlClient
Imports System.Data
Imports System.Data.Odbc
Imports System.Data.SqlClient
Imports System.Data.Sql
Imports System.Collections.Generic
Imports Newtonsoft.Json
Imports System.Net.Http

<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class MapService
Inherits System.Web.Services.WebService

<WebMethod()> _
Public Sub GetAlert()
    Dim xmlString As String = ""

    Try
        Dim sConnString As String = ConfigurationManager.ConnectionStrings("WebApp").ConnectionString
        Dim odbcConn As OdbcConnection = New OdbcConnection(sConnString)
    
        Dim sQueryString As String = "SELECT * FROM tblalert WHERE alert_id = 1"
        Dim DBCommand As New OdbcCommand(sQueryString, odbcConn)
        odbcConn.Open()

        Try

            Dim odbcReader As OdbcDataReader = DBCommand.ExecuteReader(CommandBehavior.CloseConnection)
            While odbcReader.Read()
    
                xmlString += ""
                xmlString += """alert_id"":""" & Convert.ToInt16(odbcReader("alert_id")) & ""","
                xmlString += """alert_title"":""" & Trim(odbcReader("alert_title").ToString) & ""","
                xmlString += """alert_body"":""" & Trim(odbcReader("alert_body").ToString) & ""","
                xmlString += """show_alert"":""" & Convert.ToInt16(odbcReader("show_alert")) & ""","
                xmlString += ""

            End While

            odbcReader.Close()

        Catch ex As Exception

            odbcConn.Close()

        End Try

        odbcConn.Close()

    Catch ex As Exception

    End Try

    'xmlString = xmlString.Trim().Substring(0, xmlString.Length - 1)
    'xmlString = "[" & xmlString & "]"

    HttpContext.Current.Response.BufferOutput = True
    HttpContext.Current.Response.ContentType = "application/x-javascript"
    HttpContext.Current.Response.Write(xmlString)
    HttpContext.Current.Response.Flush()

End Sub

我的代码有什么问题?为什么“dataSource.read()”函数没有从VB文件中获取数据?

【问题讨论】:

您需要调试服务并查看它的错误位置以及错误详细信息。此外,您已使用 c# 和 vba 标记了该问题,两者均不适用于此问题。 感谢您更新标签。我不知道如何调试服务。我确实认为问题出在代码的可视化基本部分,基于我为找出问题所在而运行的测试。 对不起,我刚刚意识到我在问题中放错了 VB 函数。我刚刚对其进行了编辑并添加了正确的函数“GetAlert()” 如果你要成为一名程序员,你必须学会​​调试。至少,您可以将代码放入您的 catch 块中,以至少记录错误是什么。但是,这很简单,在 catch 块内单击,按 F9 设置断点,然后按 F5 使用调试器运行。重新创建错误,您将中断您的代码。学习调试! 1) 您可以注释掉Trys 和Catches,并注意空的Catch 通常是个坏主意,因为这会阻止它告诉您出了什么问题。 2) 顺便说一句,为变量提供适当的名称很重要:将“xmlString”用于格式化为 JSON 的内容会产生误导。 【参考方案1】:

根据这个网站http://net-informations.com/q/mis/500.html,问题出在您的服务器端。某些配置不正确。仔细检查您使用的连接字符串以确保它连接到正确的服务器,然后检查以确保服务器正在运行并且可以访问。

【讨论】:

以上是关于我的 ASP.NET / Visual Basic 代码有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net 中插入后获取主键(visual basic)

在 asp.net(访问数据库)中编写更新查询(visual basic)

在Visual Basic.NET(VB.NET)中开发的ASP.NET Core应用程序,可以吗? VS

Visual Studio 的“发布”功能阻止我的 ASP.NET MVC 应用程序编译

Visual Studio 2017 安装中断 Visual Studio 2015 ASP.NET Core 项目

ASP.NET MVC:使用 Visual Studios for Mac 连接 SQL 数据库