将内容文件添加到Web服务中,并从Web服务中访问内容文件。

24 浏览
0 Comments

将内容文件添加到Web服务中,并从Web服务中访问内容文件。

我想在我的Web应用程序/ Web服务的bin目录中包含一个XML文件。我已经在Visual Studio中将bin文件夹包含在我的项目中,并添加了该文件。我将其Build Action设置为“Content”,将Copy to Output Directory设置为“Copy Always”。当我的代码去找它时,我使用以下代码获取目录并将其作为appPath返回,其中appPath是(非转义版本):

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\0c7655f\d4908928\assembly\dl3\5cf9fd67\fdc52284_ffa7d201\

然后我追加我的XML文件的文件名(其中string filename = "myXmlFile.xml"),以便读取它:

StreamReader reader = new StreamReader(appPath + filename);

但是我在那行代码上遇到了一个异常,说找不到我的文件。我已经正确处理了斜杠的转义,所以不是那个问题。当我检查路径指向的物理目录时,发现它没有被复制到那个目录,这就是异常的原因。那么我如何将我的文件复制到那里呢?

0
0 Comments

问题的原因是在Web应用或服务中向其下的文件夹中的内容文件进行写操作时,会导致该站点被重置,从而清除任何静态全局变量。解决方法是将内容文件放在与站点相同的层级上,而不是放在“bin”文件夹中。这样做可以避免重置站点的问题。

下面是一个示例代码,演示了如何将内容文件添加到Web服务并从中访问内容文件:

using System.IO;
using System.Web.Hosting;
// 获取应用程序的物理路径
var applicationPath = HostingEnvironment.ApplicationPhysicalPath;
// 创建内容文件的路径
var contentFilePath = Path.Combine(applicationPath, "filename.xml");
// 对内容文件进行操作
// ...
// 从内容文件中读取数据
// ...

需要注意的是,在实际操作中,不要将内容文件放在“bin”文件夹中,以避免重置站点的问题。

0