
2011年11月17日
for asp.net, there are 2 spaces to set the maximun upload size.
1. in web.config, like this
<httpRuntime executionTimeout="6000" maxRequestLength="150000" />
2. in IIS=>Request Filtering:
if your upload file is exceed the max lengh, you will get error like
404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

posted @ 2011-11-17 14:20 Jack Niu 阅读(8) 评论(0)
编辑
Purpose: Parse MSI installer, to get information such as product name, product code, properties etc.
MSI is a standard windows install techonoly, so there are APIs for developers to access. But they are c/c++ methods, instead of C#. After google, i found the ‘Wrapping the Windows Installer 2.0 API’(http://www.codeproject.com/KB/cs/msiinterop.aspx), which is can let .net developers access MSI api easily.
After download the library, you can visit MSI datatable like this
1: using System;
2: using WindowsInstaller;
3:
4: namespace MsiTest
5: { 6: class Program
7: { 8: static void Main(string[] args)
9: {10: test("c:\\xxx.msi");11: }
12:
13: private static void test(string fileName)
14: {15: IntPtr databasePtr;
16: var retDatabase = MsiInterop.MsiOpenDatabase(fileName, MsiDbPersistMode.ReadOnly, out databasePtr);
17:
18: IntPtr viewPtr;
19: var ret = MsiInterop.MsiDatabaseOpenView(databasePtr, "SELECT Value FROM Property where Property = 'SecureCustomProperties'", out viewPtr);
20:
21: IntPtr recordPtr = IntPtr.Zero;
22: ret = MsiInterop.MsiViewExecute(viewPtr, IntPtr.Zero);
23: ret = MsiInterop.MsiViewFetch(viewPtr, ref recordPtr);
24:
25: uint buffer_length = 2550;
26: string return_buffer = new string(' ', (int)buffer_length);27: MsiInterop.MsiRecordGetString(recordPtr, 1, return_buffer, ref buffer_length);
28: MsiInterop.MsiCloseAllHandles();
29:
30: Console.WriteLine(return_buffer.Trim());
31: }
32:
33: }
34: }
35:
36:
posted @ 2011-11-17 14:07 Jack Niu 阅读(18) 评论(0)
编辑