IIS6将空间添加到文件路径的末尾

时间:2011-01-08 21:45:18

标签: asp.net-mvc iis-6

        string filePath = Properties.Settings.Default.audioFilePath.ToString() + " ";
        filePath = filePath.Replace(" ", "");           // iis6 on 2003 server seems to add a space to the end of the path
        string audioFilename = filePath + filename;
        return File(audioFilename, "audio/wav");
这对我来说非常令人费解。在我的开发机器上,这工作正常,路径是正确的。在生产站点上,我的IIS6为filePath变量添加了一个空格。我添加了用“”替换空格的行,甚至在我的本地机器上添加了额外的字符串以确保它正常工作。

我放置了一个测试视图来传递路径,在IIS6上我得到:

  

c:\ messages \ voicemail \ filed \<

注意\ filed \和<之间的空格(我添加了<所以我可以看到空格)

在我的开发机器上,我得到了

  

C:\ __ dev的\ _proj \ MSG \消息\<

我在web.config文件中交换路径但是没有空格,反正我正在删除空格,但是当它被提供给浏览器时,似乎IIS6添加了空格???尝试了不同的浏览器,IE和Firefox,两者都有相同的结果,所以它指向IIS ????

答案:修剪它,它不是一个空间的反应已经死了。这是LF。 固定代码:

            string filePath = Properties.Settings.Default.audioFilePath;
        filePath = filePath.TrimEnd();           // iis6 on 2003 server seems to add a space to the end of the path
        string audioFilename = filePath + filename;

1 个答案:

答案 0 :(得分:0)

这个问题听起来很不寻常。但作为一种解决方法,您应该使用Replace而不是Trim。而不是filePath + fileName,请尝试System.IO.Path.Combine(filePath, fileName)。我不知道这是否会抑制症状,但值得一试。