2

我有一个使用 .Net 框架 4.0 的 ASP.Net 项目。如果我的项目发布到我的 Windows 7 工作站,以下行可以正常工作:

strTemplate = strTemplate.Replace("<span style=\"background-color: yellow;\">", "");

但是,如果我将项目发布到 Windows 2008 R2 服务器,则不会发生上述替换。没有错误;服务器只是找不到模式并且不会替换它。谁能告诉我为什么,或者如何解决这个问题?我试过在我的模式字符串前面放一个“@”,但是无论反斜杠是否存在,字符串都想在“背景颜色”之前的双引号处终止。

4

1 回答 1

2

尝试这个:

strTemplate = strTemplate.Replace(@"<span style=""background-color: yellow;"">", "");

使用@符号时必须加上两个双引号。

编辑:假设您可以访问 Windows 2008 R2 服务器上正在运行的应用程序,请尝试在那里和您的 Windows 7 工作站上运行此代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Globalization;

namespace CurrentCulture
{
    public class Info : MarshalByRefObject
    {
        public void ShowCurrentCulture()
        {
            Console.WriteLine("Culture of {0} in application domain {1}: {2}",
                              Thread.CurrentThread.Name,
                              AppDomain.CurrentDomain.FriendlyName,
                              CultureInfo.CurrentCulture.Name);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Info inf = new Info();
            // Set the current culture to Dutch (Netherlands).
            Thread.CurrentThread.Name = "MainThread";
            Thread.CurrentThread.CurrentCulture = CultureInfo.CurrentCulture;
            inf.ShowCurrentCulture();
            Console.Read();
        }
    }
}

如果您的 Windows 7 工作站上的当前文化与您的 Windows 2008 R2 服务器不同,您将需要调整您的 Windows 2008 R2 线程的当前文化以符合您的期望。

您可以将线程的文化设置为新的文化,如下所示:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-NL");

我的代码是从 MSDN 页面修改的:http: //msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture (v=vs.110).aspx

于 2013-05-01T17:09:17.603 回答