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;
答案 0 :(得分:0)
这个问题听起来很不寻常。但作为一种解决方法,您应该使用Replace
而不是Trim
。而不是filePath + fileName
,请尝试System.IO.Path.Combine(filePath, fileName)
。我不知道这是否会抑制症状,但值得一试。