配置FileZilla Server 后出現 type 200 in a經過長時間調查發現是FileZilla Server不支持IPv6。
所以在
沒安裝IPV6的一般會服務卡死,無法使用。需要在 FileZilla Server.xml 添加 〈Item name="Disable IPv6" type="numeric"〉1〈/Item〉
原因是二級域名帶了下劃線(如:aw_server)
本地測試完全沒問題,不管什么瀏覽器都能獲取到session。丟到服務器上后就不行了,但是chrome,firefox依然可以,甚至搜狗瀏覽器的IE內核都可以。。。具體是在登錄驗證之后,會執行session.add之后就是response.redirect跳轉我驗證了一下,session.add之后獲取能獲取到,但是跳轉之后session就丟失了,以前幾個月都沒出過這種問題。服務器上有asp會話服務,webconfig也完全沒問題。跪求解答,太奇葩了。
namespace XXXX
{
/// <summary>
/// Excelファイルを保存する機能を提供します。
/// </summary>
public static class ExcelToPdf
{
/// <summary>
/// ExcelファイルをPDFとして保存します。
/// </summary>
/// <param name="excelFilePathName">Excelファイルのパス付きファイル名。</param>
/// <param name="saveAsPathName">保存するPDFのパス付きファイル名。</param>
/// <remarks>
/// <para>
/// Excel 2007がインストールされている必要があります。
/// </para>
/// <para>
/// Office 2007のSP2、またはPDF保存アドインがインストールされている必要があります。</ br>
/// http://support.microsoft.com/kb/953195/ja</ br>
/// http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyId=F1FC413C-6D89-4F15-991B-63B07BA5F2E5&displaylang=ja
/// </para>
/// </remarks>
public static void SaveAsPdf(string excelFilePathName, string saveAsPathName)
{
Application application = null;
Workbooks workbooks = null;
Workbook workbook = null;
try
{
application = new Application();
/*
* application.Workbooks.Open(...は、Workbooksオブジェクトの解放処理ができないので不可。
* 必ず変數経由でComRelease.FinalReleaseComObjectsを呼び出すこと。
*/
workbooks = application.Workbooks;
workbook = workbooks.Open(
excelFilePathName, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// http://msdn.microsoft.com/ja-jp/library/microsoft.office.tools.excel.workbook.exportasfixedformat(v=vs.90).aspx
workbook.ExportAsFixedFormat(
XlFixedFormatType.xlTypePDF,
saveAsPathName,
XlFixedFormatQuality.xlQualityStandard,
true,
true,
Type.Missing,
Type.Missing,
false,
Type.Missing);
}
finally
{
if (workbook != null)
{
try
{
workbook.Close(true, Type.Missing, Type.Missing);
}
catch
{
}
}
if (application != null)
{
try
{
application.Quit();
}
catch
{
}
}
ComRelease.FinalReleaseComObjects(workbook, workbooks, application);
}
}
}
/// <summary>
/// COMオブジェクトを解放する機能を提供します。
/// </summary>
public static class ComRelease
{
/// <summary>
/// 複數のCOMオブジェクトの參照カウントを0までデクリメントし、解放します。
/// </summary>
/// <param name="objects">解放するCOMオブジェクトの配列。</param>
/// <remarks>解放は配列の要素順に行います。</remarks>
public static void FinalReleaseComObjects(params object[] objects)
{
foreach (object o in objects)
{
try
{
if (o == null)
continue;
if (Marshal.IsComObject(o) == false)
continue;
Marshal.FinalReleaseComObject(o);
}
catch (Exception)
{
}
}
}
}
}
private void button13_Click(object sender, EventArgs e)
{
const string Dir = @"C:\";
ExcelToPdf.SaveAsPdf(Path.Combine(Dir, "20121219163550.xlsx"), Path.Combine(Dir, "20121219163550.pdf"));
}
XXX.master
telerik:RadScriptManager ID="RadScriptManager1" runat="server"
EnablePageMethods="True" ScriptMode="Debug" EnableScriptCombine="False">
XXX.aspx
<telerik:RadCodeBlock ID="RadCodeBlock" runat="server">
<script type="text/javascript">
function nextButtonMouseOver(sender, args) {
var index = $get("<%= CurrentIndex.ClientID %>").value;
PageMethods.GetNextOrPrevious(true, index, onSuccess)
}
</script>
</telerik:RadCodeBlock>
XXX.cs
[WebMethod]
public static string GetNextOrPrevious(Boolean isNext, int index)
{
}
ここでは、 ViewState と Session を比較し、基本的な使い分け方について説明します。
ViewState は、以下の條件にマッチする場合に使用します。
- 畫面內だけで利用するデータ
- 容量が小さいデータ
- セキュリティが必要ないデータ
Session は、以下の條件にマッチする場合に使用します。
- 畫面間で受け渡すデータ
- セキュリティが必要なデータ