2017-01-11 3 views
0

Visual Studio 2010で.NET Web Serverを作成しました.Net 4には、SQL Serverデータベースからデータを挿入および取得するセクションが2つあります。これをLINQからSQLクラスの 'CommentaryData.dbml'ファイルに設定しました。 Visual Studioから「ブラウザで表示」を選択すると、このすべてが正常に機能します。公開すると(IISのwwwrootフォルダに公開する)、ファイルはエラーなしで公開されます。 CS0246:型または名前空間の名前 'CommentaryDataDataContext'が見つかりませんでした(使用するディレクティブまたはアセンブリ参照がありませんか?) もし私がブラウザで表示される場合、次のコンパイルエラーが表示されます。これが私のDataContextを含むすべての行で発生している詳細なコンパイラの出力を展開します。CommentaryDataDataContextLINQ to SQLクラスを使用してコードを発行した後にコンパイルしない

私はすでに私のプロジェクト参照と私のコードファイル内の私の参照されるライブラリでsystem.data.linqは次のようになりています

using System; 
using System.Collections.Generic; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

私がしていますまた、参照しているすべてのコードをコメントアウトしようとしましたdatacontextとプロジェクトがうまくパブリッシュされるので、LINQと関係することが問題ですが、私が見る限り、私は正しいライブラリを参照しています。私はこれを解決しようとしています。

編集:手動でweb.configに<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>という名前のアセンブリを追加しようとしましたが、動作しませんでした。

は私もSystem.Data.Linq.dllがbinフォルダに存在してチェックして、それは私が、ブラウザにエラーメッセージ、前のDataContextの各インスタンスに名前空間を明示的に参照しようとした

ですdatacontextがその名前空間に存在しないことを教えてくれますが、dbmlのdesigner.csを見ると、名前空間は正確で一致します

編集2:作成されている唯一のdllシステムからのもの)は、私のメインの名前空間/ソリューション/プロジェクトのものです:TableauCommentary.dll。 [展開する項目:]を「このアプリケーションを実行するために必要なファイルのみ」に再度更新すると、正常に公開されますが、ブラウザで表示しようとすると別のエラーが表示されます。

パーサーエラーメッセージ: '/ tcom /CommentaryOutput.aspx.cs 'は存在しません。

ソースエラー:

1行目:<%の@ページ言語= "C#の" AutoEventWireup属性は= "true" をCodeFile = "CommentaryOutput.aspx.cs" 継承= "TableauCommentary.CommentaryOutput" %>

私のすべてのコードファイルのビルドアクションはコンパイルするように設定されていますが、dllファイルが正しく作成されていない可能性があり、コードビハインド.csファイルがインクルードされていたため、公開された場所では、必ずしもそうである必要はありません。 dbmlのデザイナーを含むすべてのコードファイルがプロジェクト内で作成され、同じ名前空間を使用するため、おそらく1つのDLLしか存在しないかもしれませんが、正しく動作していないか、LINQ要素のために別のもの下に、確信していない...誰も助けてください助けてください?

+0

<のために異なっ働いたようです?ユーザーはサーバーファイルシステムに対する読み取り/書き込み権限を持たないため、ファイルがクライアントPCに保存されていることを確認してください。 – jdweng

+0

多分私はここであなたのポイントを見逃していますが、私はユーザーが挿入/取得したいデータは、web.configファイルに格納された詳細を介してアクセスされるSQLサーバーデータベースにあります。レコードが挿入され、期待どおりに取得された場合、これが公開されるのは –

+0

以上になるということです。あなたはレポートを公開したいですか?レポートはデータベースにロードされていますか? – jdweng

答えて

0

私はこれを最後に並べ替えられています。私は解決策が投稿価値があると思う。

ファイルシステム経由で公開する場合:公開後、IISマネージャーに移動し、アプリケーションを右クリックして[アプリケーションに変換]をクリックする必要があります'

これは、Webデプロイメントが完了したときに必要なステップではなく、ウェブアプリケーションではなくウェブサイトで行う必要はありません。前。

編集:私は、私は他のバージョンのために話すことができない8. IIS、これは、Visual Studio 2010、.NET 4.0のために真であることを述べるべきで、それがなぜあなたはサーバー上でコンパイルされ、これはIIS7

0

はいくつかの理由かもしれませんがあります。

  1. ほとんどの場合、あなたはX32モードでアプリあなたを構築し、アプリケーションプールはx64のこと、またはその逆に構成されています。あなたのアプリケーションプールとWebサイトが共にx64またはx32であることを確認してください。

  2. あなたはライブラリを参照し、それがここのような出力にコピー]をマークされていない:

enter image description here

+0

申し訳ありませんが、どちらもありません。 System.Data.Linqはすでにcopy local = trueになっています。それをfalseに設定してもVisual Studioでの作業が中止されましたが、公開時に正しく動作しない可能性があります。32/64ビット問題ではありませんでした –

関連する問題