私は Heather Solomon の最小限の公開マスター ページを使用しています。これを行う apsx ページとコード ビハインド ファイルを備えた単純な機能があります。
public class SSInformPage : Page
{
protected Literal Literal1;
protected override void OnLoad(EventArgs e)
{
//base.OnLoad(e);
try
{
HttpContext.Current.Session["Name"] = "Mr Ben";
Literal1.Text = string.Format("{0} {1}", HttpContext.Current.Session["Name"].ToString(), Session.SessionID);
}
catch (Exception ex)
{
Literal1.Text = string.Format(ex.Message.ToString());
}
}
}
このページがブラウザに読み込まれると、次のエラーが表示されます
オブジェクト参照がオブジェクト インスタンスに設定されていません。
それでも、すぐに使用できるマスター ページ (例: Black Vertical) に切り替えると、コードが機能します。「Mr Ben {session ID}」の期待どおりの出力が得られます</p>
新しい空白のマスター ページを作成し、Black Vertical マスター ページの内容全体をそこにコピーしました。サイトをこの新しいマスター ページに設定し、すべてが機能することを期待してページを読み込み、「オブジェクト参照...」エラーを受け取ります。それはどのように機能しますか?これはまったく同じマスター ページですが、OOTB バージョンの場合にのみコードが機能します。
中央管理でセッション状態を有効にしました。web.config ファイルとアセンブリが GAC にデプロイされています。
更新 別のフォーラムでの提案から、それは信頼の問題のようです。ソリューションが GAC にデプロイされると考えていたのは間違いでした。実際には Bin フォルダーにデプロイされていました。これをリセットしようとしましたが、Web アプリケーションの bin フォルダーへのデプロイを停止することはできましたが、WSPBuilder を GAC のソリューションにデプロイできないようです。
ソリューションを GAC フォルダーにデプロイする方法を知っている人はいますか? これは私のstsadmコマンドです
stsadm -o deploysolution -name Test.SessionState.Solution.wsp -immediate -url http://example -allowGacDeployment -allowCasPolicies -force
Udpate 2 いいえ、信頼の問題ではありません。ソリューションを再作成し、GAC に確実にデプロイされるようにしました。sharepoint デザイナーで OOTB マスター ページを開き、保存ボタンをクリックすると、ページが「カスタマイズ」されます。これを行うとすぐにコードが機能しなくなり、マスター ページをサイト定義にリセットすると、コードが再び機能し始めます。
私はソリューションファイルを持っています。誰でもこれをインストールして動作を確認したいのです。