为什么此文件默认保存到IIS Express文件夹?

时间:2014-02-27 17:29:41

标签: c# visual-studio asp.net-web-api iis-express bin

我有这个代码将测试文件保存在我认为是项目的bin文件夹中:

XDocument doc = XDocument.Parse(stringifiedXML);
doc.Save("testXMLFile.xml"); 

...但实际上它最终出现在C:\ Program Files(x86)\ IIS Express

是的,IIS Express正在托管这个Web API应用程序,当从Visual Studio运行应用程序时,我希望将该文件保存到项目的bin文件夹中。为什么这样?

我可以指定我想要保存文件的位置:

// In PlatypusGlobals.cs
public static string appDataFolder = HttpContext.Current.Server.MapPath("~/App_Data/");

doc.Save(string.Format("{0}testXMLFile2.xml", PlatypusGlobals.appDataFolder));

...但仍然希望“原始保存”转到bin目录。这是可配置的,还是只需要将文件保存到IIS Express文件夹中?

1 个答案:

答案 0 :(得分:5)

我认为你误解了程序的执行方式。它永远不会从“Visual Studio”执行。它从IIS Express执行,Visual Studio附加到它。

由于此程序在IIS Express下执行,因此程序的可执行路径位于IIS Express目录下。如果您使用完整IIS的本地安装,则会有所不同,因为它会创建一个直接从bin文件夹运行dll的虚拟目录。