Автор: alexeiv | Декабрь 6, 2009

Несколько Сайтов на одном сайте IIS

Очень полезная вещь это заставить сделать Редирект если hostname или домен, по которому зашёл клиент не тот, который мы ожидали

Например, есть два или более доменов, все они указывают на один и тот же сайт, а сайт распределяет по разным папкам каждый запрос в зависимость от названия домена.

supersite.ru –> /s1/
megashop.ru –> /s2/
other.ru –> /o/
и т.д.

можно установить HttpModule на каждый сайт ASP.NET, чтобы заставить сайт использовать только предназначенный УРЛ (URL) или домен.

Код и настройки сделано на C#

...

...

source code (Код С#) модуля RedirectUrls.cs


using System;
using System.Web;
using System.Web.UI;
using System.Web.Configuration;

namespace ForceRedirectModule
{
///
/// Summary description for IHttpModule
///
public class RedirectUrls : IHttpModule
{
#region IHttpModule Members

public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += OnPreRequestHandlerExecute;
}

public void Dispose()
{
}

#endregion

private void OnPreRequestHandlerExecute(object sender, EventArgs e)
{
HttpContext ctx = ((HttpApplication)sender).Context;
IHttpHandler handler = ctx.Handler;

// Only worry about redirecting pages at this point
// static files might be coming from a different domain
if (handler is Page)
{
if (ctx.Request.Url.Host != WebConfigurationManager.AppSettings["ForceHostName"])
{
UriBuilder uri = new UriBuilder(ctx.Request.Url);

uri.Host = WebConfigurationManager.AppSettings["ForceHostName"];

// Perform a permanent redirect - I've generally implemented this as an
// extension method so I can use Response.PermanentRedirect(uri)
// but expanded here for obviousness:
ctx.Response.AddHeader("Location", uri.ToString());
ctx.Response.StatusCode = 301;
ctx.Response.StatusDescription = "Moved Permanently";
ctx.Response.End();
}
}
}
}
}

Автор: alexeiv | Август 28, 2009

YML, всё для ASP.NET 2

Теперь надо загрузить файл .xml в формате YML

XmlDocument docLoad = new XmlDocument();
docLoad.Load(Server.MapPath(«test.xml»));

yml_catalog ycat = new yml_catalog();

using (MemoryStream stream = new MemoryStream())
using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8))
{
writer.Write(docLoad.InnerXml);
writer.Flush();

stream.Position = 0;
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
ycat = (yml_catalog)s.Deserialize(reader);
}
}

Читать далее…

Автор: alexeiv | Август 28, 2009

YML, всё для ASP.NET

Для тех, кто желает создать свой магазин и начитать файлы в формате YML в ASP.NET, мы пишем код, для начитывания YML файлов на C#
Читать далее…

Автор: alexeiv | Август 28, 2009

YML, всё для ASP.NET 3 (CREATE TABLES…)

Если нет структуры для сохранения товаров в базе данных, то мы можем создать её на SQLEXPRESS или MSQL Server в базе данных.

Создание таблиц в MSSQL для YML:

USE [magazin]
GO
/****** Object:  Table [dbo].[yml_category]    Script Date: 08/28/2009 15:57:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[yml_category](
[ID] [bigint] NULL,
[parentId] [bigint] NULL,
[name] [nvarchar](1000) NULL,
[dateCreated] [datetime] NULL
) ON [PRIMARY]

USE [magazin]
GO
/****** Object:  Table [dbo].[yml_category_offer]    Script Date: 08/28/2009 15:57:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[yml_category_offer](
[itemId] [bigint] NULL,
[categoryId] [bigint] NULL,
[dateCreated] [datetime] NULL
) ON [PRIMARY]

USE [magazin]
GO
/****** Object:  Table [dbo].[yml_offer]    Script Date: 08/28/2009 15:57:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[yml_offer](
[ID] [bigint] NULL,
[available] [bit] NULL,
[url] [nvarchar](250) NULL,
[price] [decimal](18, 4) NULL,
[currencyId] [varchar](50) NULL,
[picture] [nvarchar](250) NULL,
[delivery] [bit] NULL,
[orderingTime] [nvarchar](250) NULL,
[name] [nvarchar](1000) NULL,
[description] [ntext] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
SET ANSI_PADDING OFF

Автор: alexeiv | Август 22, 2009

Програмирование ASP.NET

Почему ASP.NET ?

  • Это быстро
  • Это надёжно
  • Легко понять

Рубрики

Follow

Get every new post delivered to your Inbox.