Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么默认情况下会将此文件保存到IIS Express文件夹中?_C#_Visual Studio_Asp.net Web Api_Iis Express_Bin - Fatal编程技术网

C# 为什么默认情况下会将此文件保存到IIS Express文件夹中?

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文件夹中。为什么会这样 我可以指定文件的保存

我有一段代码,它将测试文件保存在我假设的项目的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。

默认情况下,它会从网站的当前执行路径保存。这就是为什么你会有这种行为。