0

ローカルマシンのvs2008でasp.netmvc2を使用し、discountasp.netの共有サーバーでホスティングする

次のように、.UTCNowに正しい「Officeis open/closed」文字列を配信させることができなかったときに問題が発生しました。

ビューユーザーコントロール:

<div><%=OfficeTimes.LondonOpenOfficeMessage() %></div>

そしてヘルパーファイルで:

public static class OfficeTimes
{
    public string LondonOpenOfficeMessage()
    {

        if (DateTime.UtcNow.Hour < 17 && DateTime.UtcNow.Hour > 7)
        {
            return "Office is currently closed";
        }
        else
        {
            return "Office is currently open";
        }
    }
}

そこで、戻り文字列をUTCに変更して(以下のように)、正しい時刻が返され、元の時刻であるかのようにコンパイルされているかどうかを確認しました。

public static class OfficeTimes
{
    public string LondonOpenOfficeMessage()
    {

        if (DateTime.UtcNow.Hour < 17 && DateTime.UtcNow.Hour > 7)
        {
            return DateTime.UtcNow.Hour.ToString(); //"Office is currently closed";
        }
        else
        {
            return DateTime.UtcNow.Hour.ToString(); //"Office is currently open";
        }
    }
}

ファイルを削除してみました...まだコンパイルされています。

すべてローカルマシンで正常に動作しました。

サーバーがこのヘルパーファイルを更新しないことを誰かが知っていますか?

4

1 に答える 1

1

Webサイトプロジェクトとは対照的に、ASP.NET MVCはWebアプリケーションプロジェクトを使用します。つまり、変更を有効にするにはコンパイルする必要があります。ローカルマシンで作業していて、Visual Studio内でサイトを実行している場合、ソースコードは自動的にコンパイルされ、変更が有効になります。bin変更を有効にするには、フォルダーに生成されたすべてのアセンブリを配置する必要があります。ソースファイルをサーバーにコピーする必要はありません(もちろんaspxascxページを除く)。

于 2010-06-30T17:23:05.477 に答える