云服务器上IIS部署ASP.NET应用和本地部署得到的结果不一样

  1. 如题,开发了一个小的ASP.NET Web API 应用,选择了部署环境为腾讯云服务器(Windows Server 2012 R2镜像)以及使用它的Mysql的云数据库,出现了返回数据不一致的情况,下面以一个API的例子的具体情况阐述,如下所示:

  2. 出错情况分析:

  • 本地开发调试+本地数据库
    本地开发+本地库

  • 本地IIS部署+云数据库
    本地部署+远程库

  • 云服务器IIS部署+云数据库
    图片描述

Web.config的连接字符串

<connectionStrings>
    <add name="MysqlConnString" connectionString="Data Source=**云数据库公网地址**;Port=**端口**;Initial Catalog=um;User ID=****;password=****;Charset=utf8" providerName="MySql.Data.MySqlClient;"/>
  </connectionStrings>

尝试的应对措施

  • 部署的时候一开始是使用传统的文件系统发布,然后把文件夹拷贝到云服务器下再在云下的IIS创建虚拟目录的做法,出现2中第三种这种情况之后换成用Web Deploy包发布,同时尝试在本地IIS也部署这个Web Deploy包,发现本地IIS可以而云端依然不行。

  • 在连接字符串上部署云端的时候改用过云数据库的内网地址也不行,同时在驱动上从代码可以看到是MySQL Connection/NET,也尝试过用odbc的驱动providerName="System.Data.Odbc;也不行(其实关于这方面我不太清楚,在云端的win server上只安装成功了Mysql 以及 MySQL Connection/NET驱动,可能有什么欠缺的步骤)

  • 程序上应该是没有错误的,否则部署到本地的时候应该报错了,而云服务器也没报错,只是返回数据不一样

  • 在云服务器上是可以通过mysql登陆到云数据库上的,就是云服务器到云数据库之间的连接时可以得

  • 之前怀疑是没有启用加载web.config配置,后来也设置了,依然不行图片描述

3.解决方案求指导
所以我现在就有点疑惑了,到底问题出在哪里?是代码上,程序生成、发布、部署上抑或是IIS的配置上。希望可以得到答案或者是类似的经验之谈,菜鸟不胜感激

阅读 7.6k
1 个回答

如果你確定所有配置一樣的情況下,我建議使用調試日誌的形式去找出問題,就在代碼里每執行一段輸出日誌到文件里,然後你才可以看到服務器端的程序到底發生了什麽事

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进