使用IIS6将C#Web应用程序添加到网站

时间:2009-07-31 00:01:21

标签: c# asp.net sql-server visual-studio web

我在VS 2008中完成了我的第一个C#项目,现在运行良好。但现在我需要将这个项目发布到我的新网站上。此项目是一个Web应用程序,它在同一台计算机(XP Professional OS)上与我的SQL Server 2008 Adventureworks数据库进行交互。我正在运行IIS 6.0 Manager,但我是IIS 6.0和VS 2008的新手。

我开始右键单击VS中的应用程序并选择“发布”,但我刚刚选择了文件系统,因为选择本地IIS会强制我输入用户名和密码。

问题是我无法在没有提示输入用户名和密码的情况下从IIS打开此网站。我已经在processModel部分中多次修改了machine.config文件,方法是设置username =“D610-M \ ASPNET”,password =“AutoGenerate”。但这让我在尝试查看时输入内置密码。而且我不知道内置的ASPNET密码是什么。当我取消此密码弹出窗口时,它会返回:

  

HTTP 401.1“您无权使用   查看此页面。“

我已经多次重置ASPNET密码了。首先我尝试将其设置为我知道的密码,然后运行aspnet_regiis命令重新初始化它。我也试过替换其他用户名和密码,但没有一个有用。我甚至尝试输入“SYSTEM”作为用户名和AutoGenerate密码,但即便这样也提示我输入密码。我已将ASPNET用户的读/写/列表权限添加到所有相关文件夹。我试图创建一个指向http://localhost/[AppName]的新网站,但这迫使我输入密码。所以没有绕过那个密码。

我在IIS中修改了默认网站的属性:主目录指向VS 2008文件夹中的应用程序,应用程序保护=低。在目录安全性选项卡上,我将用户名设置为D610-M \ IUSR_D610-M,然后选中了“启用匿名访问”。我取消选中允许IIS控制密码。

我已经阅读了很多MS URL和其他网站,看看我是否可以自己回答这些问题,但他们的帮助都没有。这应该很简单。我只是想将我的网络应用程序添加到我的网站。我知道我的网站有效,因为我安装了一个基本HTML的默认网站,它可以工作。

我还可以尝试将此网络应用添加到我的网站?

5 个答案:

答案 0 :(得分:1)

我不确定是不是这样,但是....我自己也看到了这个错误,这通常是因为ASP.NET选项卡下的网站属性中没有将ASP.NET版本设置为2.0。此设置通常默认为ASP.NET 1.1,这将导致此错误发生。请注意,即使您使用的是Visual Studio 2008,ASP.NET版本仍然需要在IIS中为2.0。我会仔细检查这个设置。

答案 1 :(得分:1)

要记住的一个重要限制是,在XP上只允许在IIS6上使用一个网站。

如果你已经编辑了你的machine.config,你已经在等式中引入了太多的新变量来正确解决问题(不是说编辑machine.config本身是有害的,但它表明有一些霰弹枪的方法是问题)。

你需要先擦干净你的石板并确保你有一个其他工作系统。浏览HTML页面并不像运行HTML那样,运行ASP.NET就像苹果和自行车。

我所知道的最好的事情是卸载并重新安装IIS以及您所使用的任何.NET框架。如果你在3.5,你应该为两点和三点五做这个。如果您需要将machine.config和web.config的每个版本(Web应用程序本身除外)恢复为默认值。编辑运行普通的ASP.NET应用程序时,您无需编辑任何内容。

一旦你认为你有一个tabla rasa并且可以浏览html页面,然后将其扩展名更改为.aspx并查看你是否仍然可以浏览它。

我今天的最后一个建议是:

如上面的海报所说,在您的网站所在的文件夹上设置您的ACL(通常是c:\ inetpub \ wwwroot),以便“Everyone”组具有“完全访问权限”。不要这样离开,即使在你自己的机器上也是这样,但它取消了等式的文件权限。如果您仍然遇到问题请告诉我,但基本上您需要从“已知良好”状态开始,如果您希望解决此问题。

答案 2 :(得分:0)

通常,我建议将初始构建定位到C:\中的某个位置(例如C:\ MyFirstApplication)。您还需要确保“网络服务”具有该文件夹的权限。将应用程序放在个人文档列表中的项目(或其他)文件夹中是在询问权限和访问问题。试试看,看看它是否有效!

答案 3 :(得分:0)

您需要在网站上设置根级文件夹权限。导航到包含您网站的文件夹,右键单击,权限,安全选项卡。确保您拥有允许角色的asp.net,匿名用户,Internet访客帐户(computer \ _user_ {something})和网络服务。

另外,我建议您在将网站发布到网络服务器之前预先编译您的网站。这是一种安全预防措施和性能助推器。从长远来看,养成这种习惯对你来说是件好事。它阻止人们调整服务器上的代码。这里提供了一个很好的实用工具:http://www.west-wind.com/tools/aspnetcompiler.asp

答案 4 :(得分:0)

我认为这与他之前提出的问题here

几乎相同