質問

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

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();

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

接続文字列は

<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()を介して行われます

役に立ちましたか?

解決 3

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

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

他のヒント

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

SQLをアタッチするのではなく、SQLインスタンス(必ずしもSQL Expressである必要はありません)に移動する必要がある場合、これが役立つ場合があります。 http://gregorybeamer.spaces.live.com/ blog / cns!B036196EAF9B34A8!630.entry?sa = 214268831

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

考えてみてください。

Kev

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top