私のasp.netアプリケーションでは、windows forms.dllを使用して、スレッドを作成することで一部のウィンドウコントロールを使用しています。これは私のシステムでは正常に機能しますが、IISでホストされている場合はセッションタイムアウトが発生します。スレッドを作成すると、IIS でセッション タイムアウトが発生します。IIS で正常に動作するスレッドを作成するにはどうすればよいですか?
以下は、iam がスレッドを作成したコードです。
public string[] DisplayFileDialog()
{
string[] result = null;
try
{
Thread objThread = new Thread(state =>{
result = FnOpenFileDialog();
// TODO: do something with the returned result
});
objThread.IsBackground = false;
objThread.SetApartmentState(ApartmentState.STA);
objThread.Start();
objThread.Join();
return result;
}
catch (Exception ex)
{
return result;
}
protected string[] FnOpenFileDialog()
{
IntPtr hdlr = GetForegroundWindow();
WindowWrapper Mockwindow = new WindowWrapper(hdlr);
OpenFileDialog fDialog = new OpenFileDialog();
fDialog.Title = "Select Files";
fDialog.Multiselect = true;
fDialog.CheckFileExists = true;
fDialog.CheckPathExists = true;
System.Windows.Forms.DialogResult dr = fDialog.ShowDialog(Mockwindow);
string[] filenames = fDialog.FileNames;
return filenames;
}
前もって感謝します。