2009-03-10 13 views
1

タイトルは自身のために話すに取り組んでいないINSERTLINQは、展開サーバー(IIS)

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ないで動作します。私はウェブ上で見てhaventどのような使用の何かを見つけたとして、どんな助けも大いに評価されるだろう。私の選択はうまく動作し、問題なく選択できます。

接続文字列は、(

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

答えて

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

2

あなたは、データベースが正しく取り付けされる特定されています。多くのISPが設定しているので、使用している接続文字列法を使用してデータベースを接続することはできません。それはあなたが見なければならない最初の場所です。私はあなたがエラーが発生すると思うだろうが、それはスタックのどこかに飲み込まれる可能性があります。

あなたが(必ずしもではないSQLエクスプレス)SQLインスタンスにSQLを動かすのではなく添付する必要がある場合、これは役立つかもしれない: http://gregorybeamer.spaces.live.com/blog/cns!B036196EAF9B34A8!630.entry?sa=214268831

2

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

単なる考えです。

ケヴ

+0

私CreateCSVFileはちょうど巨大なフォーマットされた文字列を作り、私はそれがヘッダと行が、私はその後、私のEncodeTo64機能を使用して、バイト[]に文字列をエンコードし、DBに挿入渡します。 – Ayo

+0

Ok ...しかし、ファイルシステムには何も書き込まれませんか?ちょうど記憶? – Kev

+0

例外がスローされましたか?あなたはtry {} catch {// do nothing}ブロックを飲み込んでいませんか? – Kev

関連する問題