Maximum request length exceeded

Lỗi: 

Maximum request length exceeded 

Nguyên nhân:

ASP.NET web server cấu hình mặc định cho phép upload tối đa 4096 KB (4MB), khi upload quá kích thức thì xảy ra lỗi trên

Khắc phục:

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="1048576" />
    </system.web>
</configuration>

Hoặc nếu là IIS lớn hơn phiên bản 7.0

<system.webServer>
   <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
   </security>
 </system.webServer>

Lỗi khi đưa lên host của nhà cung câp – Unrecognized attribute ‘targetFramework’

Khi đưa lên host của nhà cung cấp, với lỗi thường gặp sau

Unrecognized attribute ‘targetFramework’. Note that attribute names are case-sensitive.

Nguyên nhân và cách khắc phục

  • Nguyên nhân

Website đang được thiết lập cấu hình mặc định là AppPool ASP.NET 2.0

  • Khắc phục

Chuyển AppPool qua ASP.NET 4.0

Razor syntax

Syntax/Sample Razor Web Forms Equivalent (or remarks)
Code Block
@{ 
  int x = 123; 
  string y = "because.";
}
<%
  int x = 123; 
  string y = "because."; 
%>
Expression (Html Encoded)
<span>@model.Message</span>
<span><%: model.Message %></span>
Expression (Unencoded)
<span>
@Html.Raw(model.Message)
</span>
<span><%= model.Message %></span>
Combining Text and markup
@foreach(var item in items) {
  <span>@item.Prop</span> 
}
<% foreach(var item in items) { %>
  <span><%: item.Prop %></span>
<% } %>
Mixing code and Plain text
@if (foo) {
  <text>Plain Text</text> 
}
<% if (foo) { %> 
  Plain Text 
<% } %>
Using block
@using (Html.BeginForm()) {
  <input type="text" value="input here">
}
<% using (Html.BeginForm()) { %>
  <input type="text" value="input here">
<% } %>
Mixing code and plain text (alternate)
@if (foo) {
  @:Plain Text is @bar
}
Same as above
Email Addresses
Hi philha@example.com
Razor recognizes basic email format and is smart enough not to treat the @ as a code delimiter
Explicit Expression
<span>ISBN@(isbnNumber)</span>
In this case, we need to be explicit about the expression by using parentheses.
Escaping the @ sign
<span>In Razor, you use the 
@@foo to display the value 
of foo</span>
@@ renders a single @ in the response.
Server side Comment
@*
This is a server side 
multiline comment 
*@
<%--
This is a server side 
multiline comment
--%>
Calling generic method
@(MyClass.MyMethod<AType>())
Use parentheses to be explicit about what the expression is.
Creating a Razor Delegate
@{
  Func<dynamic, object> b = 
   @<strong>@item</strong>;
}
@b("Bold this")
Generates a Func<T, HelperResult> that you can call from within Razor. See this blog post for more details.
Mixing expressions and text
Hello @title. @name.
Hello <%: title %>. <%: name %>.

Source: haacked.com

Error: The OwinStartup attribute discovered in assembly

Khi gặp lỗi sau:

The OwinStartup attribute discovered in assembly ‘eNoteBookApp’ referencing startup type ‘eNoteBookApp.Startup’ conflicts with the attribute in assembly ‘eHandbook’ referencing startup type ‘eHandbook.Startup’ because they have the same FriendlyName ”. Remove or rename one of the attributes, or reference the desired type directly.
To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of “false” in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config

Hãy xử lý bằng cách:

Mở web.config và bổ sung key sau vào appSettings

<appSettings>
<add key=“owin:AutomaticAppStartup” value=“false”/>
</appSettings>

Database index là gì?

Database index (chỉ mục) là gì?

  • Chỉ mục cho phép chương trình tìm dữ liệu trong bảng mà không cần quét toàn bộ bảng.
  • Chỉ mục được dùng để tìm kiếm dữ liệu, con trỏ chỉ mục được sử dụng để định vị (chỉ ra) hàng có chứa giá trị cần tìm kiếm.
  • Chỉ mục xây dung hợp lý có thể cải thiện hiệu suất cơ sở dữ liệu đáng kể.

Chỉ mục có 2 loại: Chỉ mục vật lý và chỉ mục logic

  • Mỗi bảng chỉ có một chỉ mục vật lý và có thể có nhiều hơn 1 chỉ mục logic
  • Chỉ mục vật lý các dòng dữ liệu sắp xếp theo thứ tự vật lý lưu trữ trên đĩa
  • Chỉ mục logic lưu bảng chỉ mục và địa chỉ của dữ liệu được lưu trữ, mỗi khi tìm thấy dữ liệu cần tìm hệ quản trị  csdl truy cập đến địa chỉ được đánh số để lấy dữ liệu mà không cần phải duyệt qua tất cả các bản ghi

Cách tạo chỉ mục

CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]
INDEX index_name
ON table_name (column_name[, column_name]…)
[WITH
[PAD_INDEX]
[[,]FILLFACTOR=x]
[[,]DROP_EXISTING]
]

Ví dụ

– – Clustered index

CREATE CLUSTERED INDEX CLINDX_titleid ON Roysched (title_id)

– – Noncluster index

CREATE NONCLUSTERED INDEX NCLINDX_ordnum ON sales (ord_num)

Tham số FILLFACTOR là khoảng trống để dành để chèn dữ liệu trong trường hợp sử dung Clustered index để tránh trường hợp khi trang dữ liệu đầy phải tách trang để bổ sung không gian trống. Số fillfactor 100% là sử dung full, không để dành phần trống trong trang dữ liệu.

Mẹo không tải lại các email đã tải xuống outlook

Mỗi khi cài lại máy, những ai dùng outlook chắc rõ quen thuộc việc cấu hình lại outlook để sử dụng các tài khoản web mail trước đây, chẳng hạn như gmail, hoặc exchange server.

Mẹo hay để mọi người thiết lập cho cho webmail để outlook không cần phải tải lại các email đã tải xuống.

  • Đối với gmail, thiết lập như sau:
  1. Logon to the web based version of Gmail here.
  2. Click the Gear icon in the top right corner and choose Mail settings.
  3. Select the “Forwarding and POP/IMAP” tab.
  4. Set the option: Enable POP for mail that arrives from now on.
  5. Press: Save Changes
  • Đối với các email khác không có thiết lập như gmail
  1. Với các loại email không có những thiết lập như trên, bạn có thể tạo ra một thư mục mới và di chuyển (Move) toàn bộ các email trong thư mục INBOX qua thư mục mới này.

Thật đơn giản nhưng nếu không biết, người dùng phải ngồi xóa các email tải 2 lần trong outlook thì thật là vất vã.

 

Hope this help.