我很感激意见或建议。
几年来,我有一个html和javascript网站,它位于Wild West托管的共享Apache服务器上。最近我决定将它迁移到.NET 3.5并将其放在由Wild West托管的共享Windows IIS7服务器上。我使用Visual Studio 2008重新编写了所有页面,添加了角色管理,启用了基于角色的安全修整的站点地图控制的菜单树以及安全目录。可能有六个页面带有几个安全目录,此时每个页面只有一个或两个文件。简单的网站。
我使用VS2008的ASP.NET配置工具来创建与站点地图中的所有角色名称匹配的用户和角色,并确认用户等位于App_Data / ASPNETDB.MDF数据库的aspnet_表中。该站点在本地计算机上呈现正常。 Login.aspx页面允许用户登录,菜单树相应调整,登录状态控件相应调整,用户被正确重定向......一切按设计工作。
我从Wild West(以前的GoDaddy)中取出共享Windows主机帐户,将ASPNETDB表和数据导出到.sql文件并在MS SQL服务器上重新创建它们,编辑web.config中的连接字符串以使用Wild West提供的连接字符串,然后使用FileZilla将文件和文件夹ftp /复制到Windows服务器。 .aspx页面将呈现没有问题但是当我尝试使用任何用户名和密码登录时,会抛出SQL异常。这是一个非常模糊的异常消息:
建立与服务器的连接时发生错误。连接到SQL Server 2005时,此错误可能是由于在默认设置下SQL Server不允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
Wild West的技术支持让我删除并重新创建数据库,确保允许远程连接,并验证连接字符串信息是否正确,但尝试登录时仍会抛出异常。现在,这是一个奇怪的部分,我可以将连接信息硬编码到页面的代码隐藏中,它将成功连接到数据库以提取信息。因此,Web服务器可以访问数据库。
所以,我开始怀疑......问题是因为我只是将页面,代码隐藏文件和文件夹复制到服务器而不是构建它们然后将编译后的版本复制到服务器? HTML与.NET非常不同,Apache服务器与IIS7非常不同。我曾经读过某个地方,复制到IIS7的未编译网站会在第一次要求时由服务器编译,但可能不是这样。服务器上的文件夹结构不包含BIN文件夹,这使我相信服务器实际上并没有构建该站点。我应该删除那里的文件和文件夹,在本地计算机上构建站点,然后将构建的版本复制回服务器?这可能是导致错误消息的原因吗?
感谢您提供的任何信息。祝节日快乐。
约翰
答案 0 :(得分:2)
我真的怀疑您所看到的问题与您部署网站的方式有关。如果您尚未发布,IIS将在第一个请求时自动编译该网站。您可以随时尝试发布它并将所有库复制到服务器,但我认为这不会解决问题。
对我而言,这听起来像是无法从您的网络服务器访问数据库服务器的问题。
你可以发布你正在使用的连接字符串,没有用户名/密码,所以我们可以查看吗?
答案 1 :(得分:1)
问题已得到解决。这是一个多部分问题。连接字符串部分需要一个元素来清除从托管公司继承的任何内容。角色和成员资格部分未引用连接字符串以获取其数据。然后登录控件没有找到应该存在的用户名,所以我们添加了一个Global.asax文件,如果找不到则添加用户。整个问题和流程已发布在以下链接:asp.net forum post