配置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 は、以下の条件にマッチする場合に使用します。
- 画面間で受け渡すデータ
- セキュリティが必要なデータ