1

既存のWebサイトの一部を開発していますが、ファイルをサーバーにアップロードしようとすると多くの問題が発生します。すべてがローカルで正常に実行されますが、ファイルをサーバーに配置すると、問題が発生し始めます。

現在、このエラーが発生するページがあります

「パーサーエラーメッセージ:タイプ'[Namespace]。[PageName]'を読み込めませんでした

。継承ステートメントを削除すると、機能します。名前空間とページ名は、ページヘッダーで参照されるコードビハインドで宣言されています。

また、私より前のすべてのページにコードビハインドがないことに気づきました。

4

4 に答える 4

2

Webサーバーにファイルを配置するための2つのオプションがあります。

  • 1つのオプションは、コンパイルして「公開」機能を使用することです。この機能では、すべての分離コードファイルがサーバー上になく、代わりに.dllにコンパイルされます。
  • もう1つは、サイトをコンパイルせずに、すべてのaspx ans .cs(または.vb)ファイルをコンパイルせずにコピーすることです。

実は3つありますが、今はこの2つだけでいいと思います。これらについては、http://msdn.microsoft.com/en-us/library/ms178466(v = vs.100 ).aspxの「柔軟な展開」セクションで詳しく説明されています。

あなたの前任者は明らかに最初の方法を使用しました。これを修正する唯一の方法は、コンパイルされた.dllファイルを\ binディレクトリから取り出し、ReflectorTeleriksのJustDecompileなどのツールを使用して逆コンパイルすることです。(後者は無料で、前者は期間限定の試用期間が無料です。)

または、完全なソースコードを入手できる場合は、すでにそこにあるすべてのコンテンツを削除し、コンパイルされていない方法を使用して公開することができます。もちろん、ダウンタイムが発生するため、かなり慎重にテストする必要があります...

于 2013-03-06T18:51:27.140 に答える
1

コードビハインドファイルがある場合は、DLLにコンパイルする必要があり、そのDLLはWebサーバーのbinディレクトリにある必要があります。実際にはInherits、コードビハインドから何も入っていない場合は正常に機能しません。最初は正常に表示されるだけかもしれませんが、どのイベントも発生しません。

サイトの残りの部分がすべて.aspxページに含まれているコードで行われている場合、それらのページはすべてスタンドアロンです。ただし、コードビハインドを使用する場合は、DLLを公開する必要があります。

于 2013-03-06T18:18:32.493 に答える
1

コードを起動して実行する最も簡単な方法をテストするには、コードを公開します。Visual Studioのプロジェクト内で、アプリケーションを右クリックして[公開]をクリックします。次に、ローカルシステムにフォルダーを作成し、このアプリケーションの実行に必要なファイルのみを選択して、[公開]を選択します。アプリケーションの実行に必要なファイルのみがコピーされ、それらのファイルをサーバーにコピーでき、すべてが正しいはずです。また、web.config / app.configファイルをコピーして、そのファイルのすべてが正しいことを確認するか、公開が完了したらディレクトリからそのファイルを削除します。

于 2013-03-06T19:30:25.827 に答える
0

それで、私は最終的に、サイトで働いている他のグループのリード開発者と話をしました。彼は、ソリューションの再構築を行ってから、変更されたas*xファイルと/bin.dllを移動するだけだと説明しました。何らかの理由で、Subversionクライアントは、更新を要求したときに実際には何も更新しなかったため、私のブランチには、他のグループが作成した新しいコントロールがありませんでした。ソリューションを構築するときに、新しいコントロールの.dllが含まれていなかったため、dllをアップロードしたときに、新しいコントロールが定義されておらず、同じメッセージが表示されました。新しいdllを削除したとき、コントロールが定義されていませんでした。

とにかく、私はそれを修正しました。答えてくれてありがとう。

于 2013-03-11T04:14:36.993 に答える