C# 为什么默认情况下会将此文件保存到IIS Express文件夹中?
我有一段代码,它将测试文件保存在我假设的项目的bin文件夹中:C# 为什么默认情况下会将此文件保存到IIS Express文件夹中?,c#,visual-studio,asp.net-web-api,iis-express,bin,C#,Visual Studio,Asp.net Web Api,Iis Express,Bin,我有一段代码,它将测试文件保存在我假设的项目的bin文件夹中: XDocument doc = XDocument.Parse(stringifiedXML); doc.Save("testXMLFile.xml"); …但实际上它最终出现在C:\ProgramFiles(x86)\IIS Express中 是的,IIS Express正在托管此Web API应用程序,当该应用程序从Visual Studio运行时,我希望该文件会保存到项目的bin文件夹中。为什么会这样 我可以指定文件的保存
XDocument doc = XDocument.Parse(stringifiedXML);
doc.Save("testXMLFile.xml");
…但实际上它最终出现在C:\ProgramFiles(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文件夹中的文件?我认为您误解了程序的执行方式。它永远不会“从”VisualStudio执行。它从IIS Express执行,Visual Studio附加到它
由于此程序在IIS Express下执行,因此该程序的可执行路径位于IIS Express目录下。如果使用完整IIS的本地安装,则情况会有所不同,因为它会创建一个虚拟目录,直接从bin文件夹运行DLL。默认情况下,它会从网站的当前执行路径保存。这就是为什么你会有这种行为。