标签: server.mappath

Server.MapPath在本地计算机和服务器计算机中的行为是否不同?

我有一个真正的噩梦Server.MapPath().当我调用Server.MapPath("~")在ASP.NET Development Server中运行的应用程序时,它返回以反斜杠结尾的根目录f:\projects\app1\,但我在发布的版本中调用它,安装在IIS中,它返回根目录而没有任何反斜杠c:\inetpub\wwwroot\app1.为什么会这样?怎么可以避免?

我在同一台机器上做了两个场景:Windows Server 2008 R2 x64,Visual Studio 2010 x64,IIS 7.

更新:

我为什么关心它?Ineed我已经根据文件/文件夹结构编写了一个自定义站点地图提供程序.它提取根目录的文件/文件夹列表"~",替换根目录部分,Server.MapPath("~")以生成.aspx用于ASP.NET Menu控件的文件的URL .我认为以下代码解释了我在做什么:

    string mainRoot = HttpContext.Current.Server.MapPath("~");

    DirectoryInfo di = new DirectoryInfo(mainRoot); 

    //added to solve this problem with Server.MapPath
    if (!mainRoot.EndsWith(@"\"))
        mainRoot += @"\";


    FileInfo[] files = di.GetFiles("*.aspx");
    foreach (FileInfo item in files)
    {
        string path = item.FullName.Replace(mainRoot, "~/").Replace(@"\", "/");

        //do more here
    }
Run Code Online (Sandbox Code Playgroud)

asp.net server.mappath

4
推荐指数
1
解决办法
6098
查看次数

如何在库项目中获取对 IWebHostEnvironment 的引用?(也在静态类中:()

我需要使用 Server.MapPath。由于库项目没有 Startup.cs,我无法应用正常的方式。

.net server.mappath library-project .net-5

4
推荐指数
1
解决办法
1450
查看次数

从 ASP.NET MVC 网站的代码中的捆绑包读取 CSS 内容

我有一个网站,使用引导程序和引导程序主题。当网站用户触发某些操作时,我的网站还会向他们发送通知电子邮件。

我希望发送的通知电子邮件的正文是格式良好的 HTML 内容,具有与主网站相同的外观和感觉。

我一直被教导要编写 DRY 代码,并使事情尽可能可维护,所以我想包含我的网站用作电子邮件中嵌入文件的相同引导 CSS,并让 HTML 正文引用该 CSS,所以如果我决定更改网站的主题,它会自动重新设置我的通知电子邮件的样式。

我用来System.Net.Mail.SmtpClient发送电子邮件,并使用 AlternateViews 添加内容。我不想在我的网站的 CSS 中包含实时引用,以防电子邮件被离线查看,所以我想嵌入 CSS。

我一直不知道如何将 CSS 文件读入字符串,并将其附加到电子邮件中。在我的 BundleConfig 中,我有这个:

bundles.Add(new StyleBundle("~/Content/css").Include(
          "~/Content/bootstrap-sandstone.css",
          "~/Content/site.css"));
Run Code Online (Sandbox Code Playgroud)

所以我尝试:

var css = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Content/css"));
Run Code Online (Sandbox Code Playgroud)

但正如我想象的那样,它抛出了 FileNotFound 异常。

我可以使用什么来让我传入~/Content/css和传出弹出CSS?

css asp.net bundle resourcebundle server.mappath

3
推荐指数
1
解决办法
1911
查看次数

导入的system.web,我没有看到server.mapPath?

我将system.web导入到我的类lib项目中.

试图找到:

system.web.httpserverutility.server.mappath

但我不知道intellisense的方法?

它是.net 2.0版本.

c# asp.net server.mappath

2
推荐指数
2
解决办法
3721
查看次数

Server.MapPath()没有获得所需的路径

我有一个asp.net网站,其中包含以下目录:

C:\用户\桌面\测试的\ src \网站

我有另一个名为"files"的文件夹,它位于:

C:\Users\Desktop\Testing\src\files
Run Code Online (Sandbox Code Playgroud)

从我的项目内部我试图从"文件"文件夹中读取文件,我这样做:

var path = HttpContext.Current.Server.MapPath("/files"); 
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

var path = HttpContext.Current.Server.MapPath(".."); 
Run Code Online (Sandbox Code Playgroud)

但它说 Failed to map the path '/files'.

这可能是什么原因?它可以用我的IIS做点什么吗?我怎么能让这个工作?

谢谢!

asp.net iis directory server.mappath

1
推荐指数
1
解决办法
5684
查看次数

在ASP.NET和C#中Quartz.net中的映射路径

我在Asp.Net C#中使用Quartz.Net来安排我的任务.我想写一个文件,当我尝试没有MapPath它按预期写入文件(Hello world).

这是我写的代码.我曾尝试HostingEnvironment.MapPathServer.MapPath.它只是在没有任何内容的情况下编写文件.

public void Execute(IJobExecutionContext context)
{
    StreamWriter file = new StreamWriter("destination_actualPath\\hello1.txt", true);
    file.WriteLine("Hello world " + Server.MapPath("../Data"));
    file.Close();
}
Run Code Online (Sandbox Code Playgroud)

是的,此文件夹Data确实存在于我的项目目录中.这个函数在IJob类中.如果我写一个新方法(除了执行)它正在写入文件(hello world和path),如果它在这个Execute方法中,它就不会写任何内容到文件中.

asp.net server.mappath quartz-scheduler quartz.net

1
推荐指数
1
解决办法
1034
查看次数

从.cs文件调用Server.MapPath

我正在尝试将我的错误写入MapPath中的文本文件中.但我有一个问题是:

path = Server.MapPath("~/emails.txt");
Run Code Online (Sandbox Code Playgroud)

实际上Server是在System.Web.UI.Page命名空间中我想在我的cs文件中使用它没有aspx文件...我的意思是它是AppCode中的CodeFile; 如何从cs CodeFile写入文件?

c# asp.net io server.mappath stream

0
推荐指数
1
解决办法
3239
查看次数