1

タイトルはそれ自体を物語っていますが、

db.ExecuteCommand("INSERT INTO tCSVFile(fileName, fileContent, mimetype, timeCreated) VALUES({0}, {1}, {2}, {3})", filename, EncodeTo64(CreateCSVFile(header, rows)), "text/csv", DateTime.Now );

これは仮想サーバーからは正常に機能しますが、iis で挿入しても何も起こりません。

これも試してみました..

 tCSVFile c = new tCSVFile
            {
                fileContent = EncodeTo64(CreateCSVFile(header, rows)),
                fileName = filename,
                mimetype = "text/csv",
                timeCreated = DateTime.Now
            };


 db.tCSVFiles.InsertOnSubmit(c);
 db.SubmitChanges();

再び仮想サーバーで動作しますが、iis ではうまくいきません。私はウェブを見て、役に立つものが何も見つからなかったので、どんな助けも大歓迎です。私の選択は正常に機能し、問題なく選択できます。

接続文字列は

<add name="db_ac_motors_testConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db_ac_motors_test.mdf;Integrated Security=True;User Instance=True"
      providerName="System.Data.SqlClient" />

挿入は MVC 部分ビューからの呼び出しであり、ajax.beginform() を介して行われます

4

3 に答える 3

2

データベースが正しく接続されていると確信していますか。多くの ISP はこれをセットアップしているため、採用した接続文字列方式を使用してデータベースを接続することはできません。それはあなたが最初に見るべき場所です。エラーが発生すると思いますが、スタックのどこかに飲み込まれている可能性があります。

アタッチするのではなく、SQL インスタンス (SQL Express である必要はありません) に SQL を移動する必要がある場合は、次の URL が役立ちます

于 2009-03-10T21:11:21.677 に答える
2

関数/メソッドは何をしCreateCSVFile()ますか? ファイルシステムにファイルを書き込む場合、パーミッションに問題があるようです。つまり、サイトの匿名ユーザーが書き込み権限を持っていない可能性があります。

ちょっとした考え。

ケブ

于 2009-03-10T21:13:19.660 に答える
0

最終的に何らかの例外を探して数時間を費やした後、スタックトレースをイベントログに保存し、このエラーを見つけました

System.Data.SqlClient.SqlException: Failed to update database "(database directory)" because the database is read-only.

そのため、インターネットでの釣りでは、ユーザー許可の制限が必要でした。

誰かが同じ問題に遭遇した場合のリンクは次のとおりです。デバッグ仮想サーバーはフォルダーのアクセス許可を異なる方法で読み取るため、展開のみに制限があると思います(アクセス許可に関しては、IISは少しうるさいです)。そして、例外が返されなかったことに驚きました...スタックトレースにアクセスするために多くのことをしなければならなかったので、始めたくありません...とにかく、リンクはこれで、手順に従ってください。正しい方向に。

http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/2e776fb4-6df9-4a11-96f1-948b8a2f839a/#page:2

于 2009-03-11T15:04:02.020 に答える