Я получил 400 - неверный запрос, когда опубликовал свое приложение на «IIS», но до публикации оно работало отлично - PullRequest
1 голос
/ 10 июня 2019

У меня есть угловое приложение, которое отлично работает локально, но когда оно опубликовано на тестовом сервере, оно больше не работает, некоторые из моих запросов POST возвращают 400 - неправильный запрос, а некоторые нет, я понятия не имеюпочему это работает локально, но после публикации это не так.

Что я пробовал:

►Я уверен, что тестовый сервер имеет доступ к базе данных, к которой я подключаюсь, предыдущаянад ним работали версии приложения, а также другие, использующие одну и ту же базу данных.

►Я зарегистрировала все свои объекты, которые отправляю в API, чтобы проверить, пропущены ли какие-то данные или нет, но через них проходят данные, новсе это выглядит одинаково локально и при публикации.

►Я определенно уверен, что это не ошибка cors, поскольку я не получаю ни одного из этих типов ошибок.

МОЯ сеть.файл конфигурации

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\pamcportal.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
</configuration>

Один из POST, который я делаю (сторона надписью)

 GetListOfPaidBatches() {
    console.log("get paid batches: ", this.amounts);
    this.showList = true;
    this.showBordRowComponents = false;
    this._paidBatches = [];
    this._http.post(this._baseUrl + 'api/CheckRun/GetPaidBatches',
      this.amounts
    ).subscribe((recievedList: CheckRunTypeModel[]) => {
      let v = recievedList;
      this._paidBatchesType = v;
      this._paidBatchesType.forEach((pb) => {
        let key2: string = pb.batchNo.substr(0, 6);
        let contains: boolean = this._filteredPaidList.some(y => y.yearMont === key2);
        if (contains) {
          this._filteredPaidList.forEach((fl) => {
            if (fl.yearMont === key2) {
              let include = fl.list.some(y => y === pb);
              if (include === false) {
                fl.list.push(pb);
              }
            }
          });
        } else {
          let d: CheckRunTypeModel[] = [];
          d.push(pb);
          this._filteredPaidList.push({
            yearMont: key2,
            list: d
          });
        }
      });
      this._paid = {};
      this._filteredPaidList.forEach((flp) => {
        let batchNumbers = flp.list;
        let indexer = flp.yearMont;
        this._paid[indexer] = batchNumbers

      });
    },
      (error) => {
        console.log(error);
      },
      () => {

        this.showBordRowComponents = true;
        this.CheckCheckRunTypeArrayPaid(this._paidBatchesType);
        this.GetUnreleasedBatches()
      });
  }

и метод его вызова в API

 [HttpPost]
        [Route("GetPaidBatches")]
        public List<CheckRunTypeModel> GetPaidBatches([FromBody] ClaimsModel data)
        {
            CheckRunTypeModel detailedBatch = new CheckRunTypeModel();
            DataTable datatbl = new DataTable();
            List<CheckRunTypeModel> returnList = new List<CheckRunTypeModel>();
            DataTable dtable = new DataTable();
            List<string> paidList = new List<string>();
            DataTable dt = new DataTable();
            SqlCommand cmd = new SqlCommand();
            SqlConnection cn = new SqlConnection();
            string claimNo = "";
            cmd.CommandTimeout = 300;
            cn.ConnectionString = _portalConnection;
            if (cn.State != ConnectionState.Open)
            {
                cn.Open();
            }
            string batchNo = "";
            string clientName = "";
            string description = "";
            string hpcode = "";
            try
            {

                    }
                    catch (Exception e)
                    {

                        var msg = e.Message;
                    }
                }
            }
            catch (Exception e)
            {

                var msg = e.Message;
            }


            return returnList;
        }

Может кто-нибудь сказать мне, почему это не так?Кинг, когда я публикую приложение на «IIS», но локально оно работает.

...