2

我将不胜感激意见或建议。

几年来,我有一个 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 文件夹,这让我相信服务器实际上并没有构建站点。我应该从那里删除文件和文件夹,在本地计算机上构建站点,然后将构建的版本复制回服务器吗?这可能是导致错误消息的原因吗?

感谢您提供的任何信息。度过一个愉快的假期。

约翰

4

2 回答 2

2

我真的怀疑您看到的问题与您如何部署网站有关。如果您尚未发布网站,IIS 将在第一次请求时自动编译该网站。您可以随时尝试发布它并将所有库复制到服务器,但是我认为这不会解决问题。

对我来说,这听起来像是无法从您的 Web 服务器访问数据库服务器的问题。

您可以发布您正在使用的连接字符串,没有用户名/密码,以便我们查看吗?

于 2008-12-19T19:31:00.333 回答
1

问题已解决。这是一个多部分的问题。连接字符串部分需要一个元素来清除从托管公司继承的任何内容。角色和成员资格部分没有引用连接字符串来获取他们的数据。然后登录控件没有找到应该存在的用户名,所以我们添加了一个 Global.asax 文件,如果找不到则添加用户。整个问题和过程已经发布在这个链接: asp.net forum post

于 2008-12-21T20:35:30.310 回答