【问题标题】:C# WebService not work in IIS in Cloud serverC# WebService 在云服务器中的 IIS 中不起作用
【发布时间】:2018-03-05 16:15:05
【问题描述】:

我在将 WebService 加载到我的云服务器中的 IIS 时遇到问题 此 WebService 用于检查 sql server DB 中的用户名和密码,并在 XML 中返回 True 或 False。

WebService 代码:

public Result Login(string userName, string userPass)
    {
        SqlConnection conn = new SqlConnection(new DBConnection().ConnectionString);

        Result result = new Result();

        try
        {
            SqlCommand cmd = new SqlCommand("select username,password from users where username = @username and password = @password");
            cmd.Parameters.AddWithValue("username", userName);
            cmd.Parameters.AddWithValue("password", userPass);
            cmd.Connection = conn;

            if (conn.State == System.Data.ConnectionState.Closed)
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();

            if (dr.HasRows)
            {
                result.ValidUser = true;
                return result;
            }
            else
                result.ValidUser = false;


        }

        catch (Exception ex)
        {
            result.Error = ex.ToString();
        }

        finally
        {
            conn.Close();

        }

        return result;
    }
-----------------------------------------------------------

连接字符串:

public string ConnectionString
    {
        get
        {
            return "Data Source=localhost;Integrated Security=True;Initial Catalog=test";

        }
    }

我用我的服务器的公共 IP 交换本地主机,但不起作用

这是执行时出现的消息错误

错误:

<Error>

System.Data.SqlClient.SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)---> System.ComponentModel.Win32Exception (0x80004005):系统找不到在 System.Data.SqlClient.SqlInternalConnectionTds 指定的文件。 ctor(DbConnectionPoolIdentity 身份,SqlConnectionString connectionOptions,SqlCredential 凭据,对象 providerInfo,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,DbConnectionPool 池,字符串 accessToken,布尔 applyTransientFaultHandling)在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,对象 poolGroupProviderInfo,DbConnectionPool 池,DbConnection owningConnection,DbConnectionOptions userOptions)在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool 池,DbConnection owningObject,DbConnectionOptions 选项,DbConnec System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 在 System.Data. System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal&amp; connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 重试,DbConnectionOptions userOptions,DbConnectionInternal oldConnection,DbConnectionInternal& 连接)在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskComple tionSource1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at WebApplication.WebService.Login(String userName, String userPass) ClientConnectionId: 00000000-0000-0000-0000-000000000000 错误编号:2,状态:0,类别:20


请帮帮我

【问题讨论】:

    标签: c# sql-server web-services iis


    【解决方案1】:

    不是很明显,但是如果您收到上述消息,则说明

    “未找到服务器或无法访问服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接”

    您可能要检查的第一件事是:

    1. 服务器地址
    2. 数据库实例名称
    3. SQL Server 的配置

    对于前 2 点,您可能想试试这个连接字符串类型输出

    Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
    

    最后一点,请关注this link

    Remote connection configuration

    【讨论】:

    • 这只是您指定使用 TCP/IP 的一种方式;这是一个“文字”,所以它是固定的,你可以从上面复制它
    • 您能补充更多细节吗?你有没有发现任何异常?如果有,它包含什么信息?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多