Console和ASP.net Webform中的不同输出

时间:2015-03-05 23:22:53

标签: c# asp.net iis webforms console

我编写了以下代码来获取IIS上的网站列表。在控制台中,它可以正常工作并完成我想要的操作,但在webforms中,当我打印输出时,它会返回visual Studio文件夹中存在的所有项目。它怎么会发生?

 public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {



            string s;
            string serverName = "localhost";
            var nsm = new ServerManager();
            using (Microsoft.Web.Administration.ServerManager sm = Microsoft.Web.Administration.ServerManager.OpenRemote(serverName))
            {

                int counter = 1;
                foreach (var site in sm.Sites)
                {

                    var p = site.Applications[0].VirtualDirectories[0].PhysicalPath;
                    int b = 0;

                    foreach (Microsoft.Web.Administration.Binding binding in site.Bindings)
                        b = binding.EndPoint.Port;

                    s =  String.Format(CultureInfo.InvariantCulture
                        , "Site number {0} : , {1} PhysicalPath : {2}  , Port:{3} {4} "
                        , counter.ToString(), site.Name, p, b, Environment.NewLine);
                    counter++;
                    Response.Write(s);
                }
            }


        }

    }

1 个答案:

答案 0 :(得分:2)

这是因为您使用Visual Studio的内置托管服务器运行您的代码,该服务器可以是Cassini或IIS express。

尝试将您的asp.net Web应用程序托管到Windows IIS,然后运行该应用程序。这应该给你在控制台应用程序中得到的相同答案。