Почему оператор SQL выполняется дважды в IIS, но один раз в Visual Studio? - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть оператор SQL, который выполняется дважды при публикации в IIS, но выполняется только один раз, когда в Visual Studio;Я не уверен, почему это работает в одном, но не в другом.

Некоторая другая информация У меня есть подстановочный SSL, который прикреплен к серверу, и я вижу только один пост-запрос в журнале сети.Фактический код (с некоторыми изменениями для защиты личности сайта.)

public void AddMenuLink(MenuLinks m)
{
    string sql = "INSERT INTO MY_TABLE (Href, Target, IsF, Name, MenuGroup)" +
                 " VALUES (@Href, @Target, @IsF, @Name, @MenuGroup)"; 

    ConnHelper misc = new ConnHelper();
    SqlConnection Conn = null;
    SqlCommand sqlCmd = null;

    try
    {
            Conn = misc.GetDataConnection();

            sqlCmd = new SqlCommand(sql, Conn);
            sqlCmd.Parameters.Add("@Href", SqlDbType.VarChar).Value = m.Href;
            sqlCmd.Parameters.Add("@Target", SqlDbType.VarChar).Value =  m.Target;
            sqlCmd.Parameters.Add("@Iswolf", SqlDbType.VarChar).Value = m.IsF;
            sqlCmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = m.Name;
            sqlCmd.Parameters.Add("@MenuGroup", SqlDbType.VarChar).Value = m.MenuGroup;

            sqlCmd.ExecuteScalar();
        }
        catch (Exception ex)
        {
        }
        finally
        {
            Conn.Close();
        }
}

Код, который его вызывает:

if (Request.Form["Add"] == "Add") 
{
    MenuLinks M = new MenuLinks();
    // Check if upload
    int uploadFlag = 0;

    if (file != null && file.ContentLength > 0)
    {
                uploadFlag = 1;
                var fileName = Path.GetFileName(file.FileName);
                string fileExt = Path.GetExtension(file.FileName);

                try
                {
                    //Original and used for viewing
                    string pathing = FILE_SHARE + "\\";
                    System.IO.Directory.CreateDirectory(pathing);
                    var path = Path.Combine(pathing, file.FileName);
                    file.SaveAs(Path.Combine(pathing, fileName));

                    //Backup
                    string pathing2 = BACKUP_SHARE + "\\";
                    System.IO.Directory.CreateDirectory(pathing2);
                    var path2 = Path.Combine(pathing2, file.FileName);
                    file.SaveAs(Path.Combine(pathing2, fileName));

                    //save path in database get ID.
                    M.Href = "http://MYSITE/Content/" + HttpUtility.UrlEncode(file.FileName);
                }
                catch (Exception ex)
                {
                    ViewBag.error = ex.ToString();
                    ViewBag.error += " Saving File FAILED IN ADD";
                    uploadFlag = 2;
                }
            }

            if(uploadFlag == 0)
            {
                //if there is no upload href get the one from link
                M.Href = Request.Form["Href"];
            }

            M.Target = Request.Form["Target"];
            M.Name = Request.Form["Name"];
            M.IsF = Request.Form["IsF"];
            M.MenuGroup = Request.Form["MenuGroup"];

            // filter uploads
            if (uploadFlag != 2)
            {
                DB.AddMenuLink(M);
            }
}

В представлении есть три формы, добавьте/edit/delete.

В представлении у меня есть это (Добавить только раздел):

<form action="" method="post" enctype="multipart/form-data">
<p>File Upload</p>
<input type="file" name="file" id="file" /><br />
<p>Link (leave blank if uploading file)</p>
<input type="text" name="Href" id="href" /><br />
<p>Target</p>
<select name="Target" id="Target">
    <option value="_self">In frame</option>

    <option value="_blank">New window</option>
</select>   

    <br />
<p>Name</p>
<input type="text" name="Name" id="Name" /><br />
<p>Tagged For:</p>
<input type="radio" name="IsF" value="Both" checked />Both<br />
<input type="radio" name="IsF" value="0"  />One<br />
<input type="radio" name="IsF" value="1" />The Other<br />

<br />
<p>Menu Group</p>
<select name="MenuGroup" id="MenuGroup">
    @{


        x.MenuGroup = "";
        for (int i = 0; i < 10; i++)
        {
            x.getMenuGroup(i);
            if (x.MenuGroup != "")
            {
                @Html.Raw("<option value='" + x.MenuGroup + "'>" + x.MenuGroup + "</option>")
                x.MenuGroup = "";
            }
        }
    }
</select>
<br />
<input type="submit" value="Add" name="Add" />
</form>

Есть идеи?

1 Ответ

0 голосов
/ 26 апреля 2019

Эта проблема оказалась чистой / перестроить / переиздать с IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...