4

私はMVC3とEntityFrameworkを使用しています。datetime私のアプリケーションでは、渡されたパラメーターに従っていくつかのデータを検索するために、EFを介してSQLServer2005のストアドプロシージャを呼び出す必要があります。

ローカル環境ではすべてが正常に機能しているようです。しかし、IISでホストした後、日付から検索しようとすると例外が発生します13-08-2012(SQLでは13が月として使用されていると思います)

エラーは言う

SqlDateTimeオーバーフロー。1/1/175312:00:00AMから12/31/999911:59:59PMの間にある必要があります

エラーはとの間の日時形式の違いによるものだと理解System.DatetimeしましSqlDatetimeた。

しかし、同じSQL Serverを使用しているローカル環境で問題なく動作しているのに、IISサーバーでホストした後にこのエラーが発生する理由がわかりませんでした。

この問題の回避策はありますか?

4

3 に答える 3

4

私の問題は解決しました。問題は IIS のカルチャ設定にありました。これらの行をアプリケーションの web.config に追加しましたが、現在は正常に動作しています。

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB"/>

詳細については、IIS のカルチャ設定に関するこの問題を確認してください。

于 2012-08-18T11:23:18.027 に答える
1

IT はサーバーのカルチャに依存します。カルチャを不変形式でフォーマットできます。2012 年 8 月 13 日の日付では、13 を月と見なします。

//Here an example of formatting with invariant culture
CultureInfo yourCulture = CultureInfo.InvariantCulture;
yourValue.ToString("yourFormat",yourCulture));
于 2012-08-18T11:06:29.877 に答える
0

日時のフォーマットを確認します。また、DateTimeと同じ範囲はありませんSqlDateTime。空の値を受け取ると、問題が発生します。

于 2012-08-18T11:15:37.813 に答える